fune/testing/web-platform/tests/webidl/ecmascript-binding/observable-array-no-leak-of-internals.window.js
Yuki Shiino c9ae7e1aae Bug 1803037 [wpt PR 37218] - bindings: Add a WPT to prevent a leak of ObservableArray's internals, a=testonly
Automatic update from web-platform-tests
bindings: Add a WPT to prevent a leak of ObservableArray's internals

Adds a WPT in order to check whether a leak of internal implementation
objects of observable arrays happens or not.

Bug: 1352549
Change-Id: I08b56208f4ace336bc56b33145a2762325584ad9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4060690
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1076696}

--

wpt-commits: 183b5afa8a6daf75b5752d0a9d2994cdb76d29e4
wpt-pr: 37218
2022-12-11 12:07:56 +00:00

18 lines
579 B
JavaScript

"use strict";
test(() => {
const observableArray = document.adoptedStyleSheets;
let leaked_target = null;
let leaked_handler = null;
let target_leaker = (target) => { leaked_target = target; return null; };
Object.defineProperty(Object.prototype, "getPrototypeOf", {get: function() {
leaked_handler = this;
return target_leaker;
}})
Object.getPrototypeOf(observableArray);
assert_equals(leaked_target, null, "The proxy target leaked.");
assert_equals(leaked_handler, null, "The proxy handler leaked.");
}, "ObservableArray's internals won't leak");