v8/test/mjsunit/keyed-store-generic.js
jkummerow 34a26e7dc4 [keyed-store-generic] Update protectors if needed
When adding or overwriting properties of an object, the generic
keyed store stub must check if that property's name might have
an associated protector (e.g. the ArraySpeciesProtector) and
take the slow path if so to ensure that the protector is updated
as needed.

BUG=v8:6269

Review-Url: https://codereview.chromium.org/2821213004
Cr-Commit-Position: refs/heads/master@{#44726}
2017-04-19 14:15:34 +00:00

23 lines
677 B
JavaScript

// Copyright 2017 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.
// Flags: --allow-natives-syntax --no-stress-opt
function f(a, i, v) { a[i] = v; }
f("make it generic", 0, 0);
(function TestIsConcatSpreadableProtector() {
var o = {length: 1, '0': 99};
%OptimizeObjectForAddingMultipleProperties(o, 0);
f(o, Symbol.isConcatSpreadable, true);
assertEquals([99], [].concat(o));
})();
(function TestSpeciesProtector() {
function MyArray() {}
assertTrue(%SpeciesProtector());
f(Array.prototype, "constructor", MyArray);
assertFalse(%SpeciesProtector());
})();