diff options
Diffstat (limited to 'testing/web-platform/tests/html/webappapis/scripting/events/compile-event-handler-symbol-unscopables.html')
-rw-r--r-- | testing/web-platform/tests/html/webappapis/scripting/events/compile-event-handler-symbol-unscopables.html | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/webappapis/scripting/events/compile-event-handler-symbol-unscopables.html b/testing/web-platform/tests/html/webappapis/scripting/events/compile-event-handler-symbol-unscopables.html new file mode 100644 index 0000000000..c840059e68 --- /dev/null +++ b/testing/web-platform/tests/html/webappapis/scripting/events/compile-event-handler-symbol-unscopables.html @@ -0,0 +1,71 @@ +<!DOCTYPE html> +<meta charset="UTF-8" /> +<title>Inline event handler scopes exclude unscopable properties</title> +<link rel="author" title="ExE Boss" href="https://ExE-Boss.tech" /> +<link rel="help" href="https://html.spec.whatwg.org/multipage/webappapis.html#getting-the-current-value-of-the-event-handler" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> + "use strict"; + window.testVariable = {}; +</script> + +<!-- test case 1: element, document, and window --> +<div id="test1_target" onclick=' + "use strict"; + + window.testResults.testVariable = testVariable; +'></div> + +<script> + "use strict"; + + test(() => { + const results = window.testResults = {}; + + document[Symbol.unscopables].testVariable = true; + document.testVariable = "FAIL (document)"; + + document.getElementById("test1_target").click(); + assert_equals(results.testVariable, window.testVariable); + }, "unscopable `document.testVariable` doesn't shadow `window.testVariable`"); + + test(() => { + const results = window.testResults = {}; + const element = document.getElementById("test1_target"); + + element[Symbol.unscopables].testVariable = true; + element.testVariable = "FAIL (element)"; + + element.click(); + assert_equals(results.testVariable, window.testVariable); + }, "unscopable `element.testVariable` doesn't shadow `window.testVariable`"); +</script> + +<!-- test case 2: element, form owner, document, and window --> +<form id="test2_form_owner" onsubmit="return false;"> + <!-- <button> is a form-associated element and has a form owner. + https://html.spec.whatwg.org/C/#form-associated-element --> + <button id="test2_target" onclick=' + "use strict"; + + window.testResults.testVariable = testVariable; + '></button> +</form> + +<script> + "use strict"; + + test(() => { + const results = window.testResults = {}; + const element = document.getElementById("test2_target"); + const formOwner = document.getElementById("test2_form_owner"); + + formOwner[Symbol.unscopables].testVariable = true; + formOwner.testVariable = "FAIL (formOwner)"; + + element.click(); + assert_equals(results.testVariable, window.testVariable); + }, "unscopable `formOwner.testVariable` doesn't shadow `window.testVariable`") +</script> |