Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
tests.set(
"deepWeakMap",
(function() {
var garbage = [];
var garbageIndex = 0;
return {
description: "o={wm,k}; w.mk[k]=o2={wm2,k2}; wm2[k2]=....",
defaultGarbagePerFrame: "1K",
defaultGarbagePiles: "1K",
load: N => {
garbage = new Array(N);
},
unload: () => {
garbage = [];
garbageIndex = 0;
},
makeGarbage: M => {
var initial = {};
var prev = initial;
for (var i = 0; i < M; i++) {
var obj = [new WeakMap(), Object.create(null)];
obj[0].set(obj[1], prev);
prev = obj;
}
garbage[garbageIndex++] = initial;
if (garbageIndex == garbage.length) {
garbageIndex = 0;
}
},
};
})()
);