v8/test/mjsunit/regress/regress-crbug-1209405.js
Igor Sheludko 939ee79d99 [runtime] Fix spec violation in Object.defineProperties
... which didn't properly handle non-Smi integer indices with
JSTypedArray receivers.

The addition of new JSReceiver::OrdinaryDefineOwnProperty() overload
with LookupIterator::Key caused circular dependency between lookup.h
and js-objects.h, so the LookupIterator::Key was moved out of the
LookupIterator class in order to make it forward-declarable.

Bug: chromium:1209405
Change-Id: I265f0c00f65ab6476c8f1d0ca1264f555d43465f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972727
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75326}
2021-06-23 10:13:03 +00:00

21 lines
594 B
JavaScript

// Copyright 2021 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.
let ar = new Int32Array();
assertThrows(()=> {
Object.defineProperty(ar, 1073741824, { get: undefined });
}, TypeError);
assertThrows(()=> {
Object.defineProperty(ar, 2147483648, { get: undefined });
}, TypeError);
assertThrows(()=> {
Object.defineProperties(ar, { 1073741824: { get: undefined } });
}, TypeError);
assertThrows(()=> {
Object.defineProperties(ar, { 2147483648: { get: undefined } });
}, TypeError);