// Copyright 2019 the V8 project authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
// For packed sealed object. | |
function packedStore() { | |
let a = Object.seal([""]); | |
a[0] = 0; | |
assertEquals(a[0], 0); | |
} | |
packedStore(); | |
packedStore(); | |
// For holey sealed object. | |
function holeyStore() { | |
let a = Object.seal([, ""]); | |
a[0] = 0; | |
assertEquals(a[0], undefined); | |
} | |
holeyStore(); | |
holeyStore(); | |
// Make sure IC store for holey is consistent. | |
let a = Object.seal([, ""]); | |
function foo() { | |
a[1] = 0; | |
} | |
foo(); | |
foo(); | |
function bar() { | |
a[0] = 1; | |
} | |
assertEquals(a, [, 0]); | |
bar(); | |
assertEquals(a, [, 0]); | |
bar(); | |
assertEquals(a, [, 0]); | |
function baz() { | |
a[2] = 2; | |
} | |
assertEquals(a, [, 0]); | |
baz(); | |
assertEquals(a, [, 0]); | |
baz(); | |
assertEquals(a, [, 0]); |