Tests that evaluating V8-embedder callbacks allows side-effect-free methods. Should not crash. Expression `document.querySelector('div').x = "foo"` has side effect: true, expected: true Expression `$('div')` has side effect: false, expected: false Expression `$$('div')` has side effect: false, expected: false Expression `$x('//div')` has side effect: false, expected: false Expression `getEventListeners(document)` has side effect: false, expected: false Expression `$.toString()` has side effect: false, expected: false Expression `$$.toString()` has side effect: false, expected: false Expression `$x.toString()` has side effect: false, expected: false Expression `getEventListeners.toString()` has side effect: false, expected: false Expression `monitorEvents()` has side effect: true, expected: true Expression `unmonitorEvents()` has side effect: true, expected: true Expression `document.getElementsByTagName('div')` has side effect: false, expected: false Expression `document.getElementsByTagNameNS(namespace, 'div')` has side effect: false, expected: false Expression `document.getElementsByClassName('foo')` has side effect: false, expected: false Expression `document.getElementsByName('div-name')` has side effect: false, expected: false Expression `document.hasFocus()` has side effect: false, expected: false Expression `document.getSelection()` has side effect: false, expected: false Expression `domTokenList.contains('foo')` has side effect: false, expected: false Expression `domTokenList.contains({})` has side effect: false, expected: false Expression `domTokenList.contains()` has side effect: false, expected: false Expression `div.getAttributeNames()` has side effect: false, expected: false Expression `divNoAttrs.getAttributeNames()` has side effect: false, expected: false Expression `div.getAttribute()` has side effect: false, expected: false Expression `div.getAttribute('attr1')` has side effect: false, expected: false Expression `div.getAttribute({})` has side effect: false, expected: false Expression `divNoAttrs.getAttribute('attr1')` has side effect: false, expected: false Expression `div.hasAttribute()` has side effect: false, expected: false Expression `div.hasAttribute('attr1')` has side effect: false, expected: false Expression `div.hasAttribute({})` has side effect: false, expected: false Expression `divNoAttrs.hasAttribute('attr1')` has side effect: false, expected: false Expression `div.getAttributeNS(namespace, 'attr1')` has side effect: false, expected: false Expression `div.getAttributeNS(namespace)` has side effect: false, expected: false Expression `div.getAttributeNS()` has side effect: false, expected: false Expression `divNoAttrs.getAttributeNS(namespace, 'attr1')` has side effect: false, expected: false Expression `div.hasAttributeNS(namespace, 'attr1')` has side effect: false, expected: false Expression `div.hasAttributeNS(namespace)` has side effect: false, expected: false Expression `div.hasAttributeNS()` has side effect: false, expected: false Expression `divNoAttrs.hasAttributeNS(namespace, 'attr1')` has side effect: false, expected: false Expression `divNoAttrs.hasAttributeNS(namespace)` has side effect: false, expected: false Expression `div.hasAttributes()` has side effect: false, expected: false Expression `div.contains(textNode)` has side effect: false, expected: false Expression `div.contains()` has side effect: false, expected: false Expression `div.contains({})` has side effect: false, expected: false Expression `div.querySelector('div')` has side effect: false, expected: false Expression `div.querySelectorAll('div')` has side effect: false, expected: false Expression `div.hasChildNodes()` has side effect: false, expected: false Expression `document.contains(textNode)` has side effect: false, expected: false Expression `document.contains()` has side effect: false, expected: false Expression `document.contains({})` has side effect: false, expected: false Expression `document.querySelector('div')` has side effect: false, expected: false Expression `document.querySelectorAll('div')` has side effect: false, expected: false Expression `document.hasChildNodes()` has side effect: false, expected: false Expression `textNode.contains(textNode)` has side effect: false, expected: false Expression `textNode.contains()` has side effect: false, expected: false Expression `textNode.contains({})` has side effect: false, expected: false Expression `textNode.querySelector('div')` has side effect: false, expected: false Expression `textNode.querySelectorAll('div')` has side effect: false, expected: false Expression `textNode.hasChildNodes()` has side effect: false, expected: false Expression `performance.now()` has side effect: false, expected: false Expression `global_getSelection()` has side effect: false, expected: false Expression `htmlCollection[0]` has side effect: false, expected: false Expression `htmlCollection.item(0)` has side effect: false, expected: false Expression `htmlCollection.length` has side effect: false, expected: false Expression `nodeList[0]` has side effect: false, expected: false Expression `nodeList.item(0)` has side effect: false, expected: false Expression `nodeList.length` has side effect: false, expected: false Expression `$$result[0]` has side effect: false, expected: false Expression `$$result.item(0)` has side effect: false, expected: false Expression `$$result.length` has side effect: false, expected: false Expression `domTokenList[0]` has side effect: false, expected: false Expression `domTokenList.item(0)` has side effect: false, expected: false Expression `domTokenList.length` has side effect: false, expected: false Expression `bodyStyle[0]` has side effect: false, expected: false Expression `bodyStyle.item(0)` has side effect: false, expected: false Expression `bodyStyle.length` has side effect: false, expected: false Expression `namedNodeMap[0]` has side effect: false, expected: false Expression `namedNodeMap.item(0)` has side effect: false, expected: false Expression `namedNodeMap.length` has side effect: false, expected: false Expression `namedNodeMap.attr1` has side effect: false, expected: false Expression `div.getBoundingClientRect()` has side effect: false, expected: false Expression `global_getComputedStyle(div)` has side effect: false, expected: false