2c3654c4a6
This reverts commit 0340874be4
.
Reason for revert: Tentative revert for https://crbug.com/v8/7626
Original change's description:
> [debug] add runtime side effect check for StaCurrentContextSlot
>
> R=yangguo@chromium.org
>
> Bug: v8:7588
> Change-Id: If78f6dd460c7423923800a98d44520c1bf71663c
> Reviewed-on: https://chromium-review.googlesource.com/996236
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52398}
TBR=yangguo@chromium.org,kozyatinskiy@chromium.org
Change-Id: I77a679649a6149607aefd44f6b7f3f6dfe548776
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7588
Reviewed-on: https://chromium-review.googlesource.com/998036
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52428}
65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
// Copyright 2018 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.
|
|
|
|
Debug = debug.Debug;
|
|
|
|
// StaNamedProperty
|
|
var a = {name: 'foo'};
|
|
function set_name(a) {
|
|
a.name = 'bar';
|
|
return a.name;
|
|
}
|
|
|
|
fail(`set_name(a)`);
|
|
success('bar', `set_name({name: 'foo'})`);
|
|
|
|
// StaNamedOwnProperty
|
|
var name_value = 'value';
|
|
function create_object_literal() {
|
|
var obj = {name: name_value};
|
|
return obj.name;
|
|
};
|
|
|
|
success('value', `create_object_literal()`);
|
|
|
|
// StaKeyedProperty
|
|
var arrayValue = 1;
|
|
function create_array_literal() {
|
|
return [arrayValue];
|
|
}
|
|
var b = { 1: 2 };
|
|
|
|
success([arrayValue], `create_array_literal()`)
|
|
fail(`b[1] ^= 2`);
|
|
|
|
// StaInArrayLiteral
|
|
function return_array_use_spread(a) {
|
|
return [...a];
|
|
}
|
|
|
|
fail(`return_array_use_spread([1])`);
|
|
|
|
// CallAccessorSetter
|
|
var array = [1,2,3];
|
|
fail(`array.length = 2`);
|
|
// TODO(7515): this one should be side effect free
|
|
fail(`[1,2,3].length = 2`);
|
|
|
|
// StaDataPropertyInLiteral
|
|
function return_literal_with_data_property(a) {
|
|
return {[a] : 1};
|
|
}
|
|
|
|
success({foo: 1}, `return_literal_with_data_property('foo')`);
|
|
|
|
function success(expectation, source) {
|
|
const result = Debug.evaluateGlobal(source, true).value();
|
|
if (expectation !== undefined) assertEquals(expectation, result);
|
|
}
|
|
|
|
function fail(source) {
|
|
assertThrows(() => Debug.evaluateGlobal(source, true),
|
|
EvalError);
|
|
}
|