28 lines
578 B
JavaScript
28 lines
578 B
JavaScript
function shouldBe(actual, expected) {
|
|
if (actual !== expected)
|
|
throw new Error('bad value: ' + actual);
|
|
}
|
|
noInline(shouldBe);
|
|
|
|
var object = {
|
|
a: 42,
|
|
b: 33,
|
|
};
|
|
Object.defineProperty(object, "c", {
|
|
enumerable: false,
|
|
writable: true,
|
|
value: 44
|
|
});
|
|
function test()
|
|
{
|
|
return Object.keys(object);
|
|
}
|
|
noInline(test);
|
|
|
|
for (var i = 0; i < 1e5; ++i)
|
|
shouldBe(JSON.stringify(test()), `["a","b"]`);
|
|
object.d = 42;
|
|
shouldBe(JSON.stringify(test()), `["a","b","d"]`);
|
|
for (var i = 0; i < 1e5; ++i)
|
|
shouldBe(JSON.stringify(test()), `["a","b","d"]`);
|