Source code

Revision control

Copy as Markdown

Other Tools

// When an already-non-extensible object is frozen, its Shape doesn't change.
// Make sure SetElement ICs handle this correctly.
function doStore(a) {
for (var i = 0; i < 100; i++) {
a[1] = i;
}
}
function test() {
with(this) {} // Don't Ion-compile.
var a = {0: 0, 1: 1};
Object.preventExtensions(a);
doStore(a);
assertEq(a[1], 99);
a[1] = 0;
Object.freeze(a);
doStore(a);
assertEq(a[1], 0);
}
setJitCompilerOption("ion.forceinlineCaches", 1);
test();
setJitCompilerOption("ion.forceinlineCaches", 0);
test();