05207b098a
Removes the --ignition flag which is now on by default. Adds a --stress-fullcodegen flag which enables running all functions supported by fullcodegen to be compiled by fullcodegen. This will enable moving parser internalization later when we are not stressing fullcodegen or compiling asm.js functions. BUG=v8:5203, v8:6409, v8:6589 Change-Id: I7fa68016d4e734755434ec0b4e749ef65ffa7f4e Reviewed-on: https://chromium-review.googlesource.com/565569 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46635}
110 lines
2.1 KiB
JavaScript
110 lines
2.1 KiB
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: --no-stress-fullcodegen
|
|
|
|
Debug = debug.Debug
|
|
|
|
var exception = null;
|
|
|
|
var o = { p : 1 };
|
|
|
|
var successes = [
|
|
[45,
|
|
`(function() {
|
|
var sum = 0;
|
|
for (var i = 0; i < 10; i++) sum += i;
|
|
return sum;
|
|
})()`
|
|
],
|
|
["0012",
|
|
`(function() {
|
|
var sum = 0;
|
|
for (var i in [1, 2, 3]) sum += i;
|
|
return sum;
|
|
})()`
|
|
],
|
|
[15,
|
|
`(function() {
|
|
var sum = 1;
|
|
while (sum < 12) sum += sum + 1;
|
|
return sum;
|
|
})()`
|
|
],
|
|
[15,
|
|
`(function() {
|
|
var sum = 1;
|
|
do { sum += sum + 1; } while (sum < 12);
|
|
return sum;
|
|
})()`
|
|
],
|
|
["023",
|
|
`(function() {
|
|
var sum = "";
|
|
for (var i = 0; i < 4; i++) {
|
|
switch (i) {
|
|
case 0:
|
|
case 1:
|
|
if (i == 0) sum += i;
|
|
break;
|
|
default:
|
|
case 3:
|
|
sum += i;
|
|
break;
|
|
}
|
|
}
|
|
return sum;
|
|
})()`
|
|
],
|
|
["oups",
|
|
`(function() {
|
|
try {
|
|
if (Math.sin(1) < 1) throw new Error("oups");
|
|
} catch (e) {
|
|
return e.message;
|
|
}
|
|
})()`
|
|
],
|
|
];
|
|
|
|
var fails = [
|
|
`(function() { // Iterator.prototype.next performs stores.
|
|
var sum = 0;
|
|
for (let i of [1, 2, 3]) sum += i;
|
|
return sum;
|
|
})()`,
|
|
`(function() { // Store to scope object.
|
|
with (o) {
|
|
p = 2;
|
|
}
|
|
})()`,
|
|
];
|
|
|
|
function listener(event, exec_state, event_data, data) {
|
|
if (event != Debug.DebugEvent.Break) return;
|
|
try {
|
|
successes.forEach(function ([expectation, source]) {
|
|
assertEquals(expectation,
|
|
exec_state.frame(0).evaluate(source, true).value());
|
|
});
|
|
fails.forEach(function (test) {
|
|
assertThrows(() => exec_state.frame(0).evaluate(test, true), EvalError);
|
|
});
|
|
} catch (e) {
|
|
exception = e;
|
|
print(e, e.stack);
|
|
};
|
|
};
|
|
|
|
// Add the debug event listener.
|
|
Debug.setListener(listener);
|
|
|
|
function f() {
|
|
debugger;
|
|
};
|
|
|
|
f();
|
|
|
|
assertNull(exception);
|