18 lines
579 B
JavaScript
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");
|