nl_tokens: Using var to avoid Unsupported phi use of variable deoptimization in Chrome 56
pl_tokens: function updateProps ( domNode , oldVirtualNode , oldProps , newVirtualNode , newProps ) { if ( oldProps ) { for ( var name in oldProps ) { if ( name === 'ref' || name === 'on' ) continue if ( name in EVENT_LISTENER_PROPS ) continue if ( ! newProps || ! ( name in newProps ) ) { if ( <mask> === 'dataset' ) { updateProps ( domNode . dataset , null , oldProps && oldProps . dataset , null , null ) } else if ( name !== 'innerHTML' && oldVirtualNode && SVG_TAGS . has ( oldVirtualNode . tag ) ) { domNode . removeAttribute ( SVG_ATTRIBUTE_TRANSLATIONS . get ( name ) || name ) } else { // Clear property for objects that don't support deletion (e.g. style // or className). If we used null instead of an empty string, the DOM // could sometimes stringify the value and mistakenly assign 'null'. domNode [ name ] = EMPTY delete domNode [ name ] } } } } if ( newProps ) { for ( var name in newProps ) { if ( name === 'ref' || name === 'on' ) continue if ( name in EVENT_LISTENER_PROPS ) continue var oldValue = oldProps && oldProps [ name ] var newValue = newProps [ name ] if ( name === 'dataset' ) { updateNestedProps ( domNode . dataset , oldValue , newValue , false ) } else if ( name === 'style' && typeof newValue !== 'string' ) { if ( typeof oldValue === 'string' ) { domNode . style = '' oldValue = null } updateNestedProps ( domNode . style , oldValue , newValue , true ) } else if ( name === 'attributes' ) { updateAttributes ( domNode , oldValue , newValue ) } else { if ( newValue !== oldValue ) { if ( name !== 'innerHTML' && newVirtualNode && SVG_TAGS . has ( newVirtualNode . tag ) ) { domNode . setAttribute ( SVG_ATTRIBUTE_TRANSLATIONS . get ( name ) || name , newValue ) } else if ( newVirtualNode && newVirtualNode . tag === 'input' && name === 'value' && domNode [ name ] === newValue ) { // Do not update `value` of an `input` unless it differs. // Every change will reset the cursor position. } else { domNode [ name ] = newValue } } } } } }