Preparsing inner functions: add regression tests for parameters.
Now that we consistently preparse the parameters of a preparsed function, these no longer crash. BUG=5501 Review-Url: https://codereview.chromium.org/2502333002 Cr-Commit-Position: refs/heads/master@{#41038}
This commit is contained in:
parent
248a3e25e9
commit
a19b9c8538
@ -102,6 +102,100 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerFunctionDestructuredParameter_1() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner([d, a]) {
|
||||
a; b; c;
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerFunctionDestructuredParameter_2() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner({d, a}) {
|
||||
a; b; c;
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionParameter() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
(a) => { a; b; c; }
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionRestParameter() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
(...a) => { a; b; c; }
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionDestructuredParameter_1() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
([d, a]) => { a; b; c; }
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionDestructuredParameter_2() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
({d, a}) => { a; b; c; }
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerInnerFunctionParameter() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
@ -136,7 +230,41 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionParameter() {
|
||||
(function TestInnerInnerFunctionDestructuredParameter_1() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner() {
|
||||
function innerinner({d, a}) { a; b; c; }
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerInnerFunctionDestructuredParameter_2() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner() {
|
||||
function innerinner([d, a]) { a; b; c; }
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerInnerArrowFunctionParameter() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
@ -153,7 +281,7 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerArrowFunctionRestParameter() {
|
||||
(function TestInnerInnerArrowFunctionRestParameter() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
@ -170,6 +298,40 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerInnerArrowFunctionDestructuredParameter_1() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner() {
|
||||
var f = ([d, a]) => a + b + c;
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerInnerArrowFunctionDestructuredParameter_2() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
function inner() {
|
||||
var f = ({d, a}) => a + b + c;
|
||||
}
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
assertEquals(1, a);
|
||||
assertEquals(2, b);
|
||||
assertEquals(3, c);
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestInnerFunctionInnerFunction() {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
@ -605,24 +767,90 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_9() {
|
||||
(function TestRegress650969_9_parameter() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner(a) {
|
||||
function inner(a) {}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_9_restParameter() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner(...a) {}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_9_destructuredParameter_1() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner([d, a]) {}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_9_destructuredParameter_2() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner({d, a}) {}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_10_parameter() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner() {
|
||||
function innerinner(a) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_10() {
|
||||
(function TestRegress650969_10_restParameter() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner(...a) {
|
||||
function inner() {
|
||||
function innerinner(...a) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_10_destructuredParameter_1() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner() {
|
||||
function innerinner([d, a]) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_10_destructuredParameter_2() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner() {
|
||||
function innerinner({d, a}) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
@ -879,6 +1107,30 @@
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_18() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner() {
|
||||
function innerinner([a, b]) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
(function TestRegress650969_18() {
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
if (i == 1) {
|
||||
%OptimizeOsr();
|
||||
}
|
||||
var a;
|
||||
function inner() {
|
||||
function innerinner(a) {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
// Regression tests for an intermediate stage where unresolved references were
|
||||
// discarded too aggressively.
|
||||
(function TestRegress650969_sidetrack_var() {
|
||||
|
Loading…
Reference in New Issue
Block a user