34a26e7dc4
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}
23 lines
677 B
JavaScript
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());
|
|
})();
|