@ -238,10 +238,10 @@ export function set_custom_element_data(node, prop, value) {
// Don't compute setters for custom elements while they aren't registered yet,
// Don't compute setters for custom elements while they aren't registered yet,
// because during their upgrade/instantiation they might add more setters.
// because during their upgrade/instantiation they might add more setters.
// Instead, fall back to a simple "an object, then set as property" heuristic.
// Instead, fall back to a simple "an object, then set as property" heuristic.
( setters _cache . has ( node . nodeName) ||
( setters _cache . has ( node . getAttribute( 'is' ) || node . nodeName) ||
// customElements may not be available in browser extension contexts
// customElements may not be available in browser extension contexts
! customElements ||
! customElements ||
customElements . get ( node . tagName. toLowerCase ( ) )
customElements . get ( node . getAttribute( 'is' ) || node . tagName. toLowerCase ( ) )
? get _setters ( node ) . includes ( prop )
? get _setters ( node ) . includes ( prop )
: value && typeof value === 'object' )
: value && typeof value === 'object' )
) {
) {
@ -546,9 +546,10 @@ var setters_cache = new Map();
/** @param {Element} element */
/** @param {Element} element */
function get _setters ( element ) {
function get _setters ( element ) {
var setters = setters _cache . get ( element . nodeName ) ;
var cache _key = element . getAttribute ( 'is' ) || element . nodeName ;
var setters = setters _cache . get ( cache _key ) ;
if ( setters ) return setters ;
if ( setters ) return setters ;
setters _cache . set ( element. nodeName , ( setters = [ ] ) ) ;
setters _cache . set ( cache_key , ( setters = [ ] ) ) ;
var descriptors ;
var descriptors ;
var proto = element ; // In the case of custom elements there might be setters on the instance
var proto = element ; // In the case of custom elements there might be setters on the instance