0a846a0e84
This is a step towards avoiding materializing function_ altogether if we deoptimize. Typically we only need the SharedFunctionInfo. Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Idee78f02d1afe3d2cb70e93a6d96a5a33907f892 Reviewed-on: https://chromium-review.googlesource.com/1100474 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#53789}
578 lines
7.8 KiB
Plaintext
578 lines
7.8 KiB
Plaintext
Tests evaluateOnCallFrame in module.
|
|
|
|
Running test: testTotal
|
|
foo1 (module1:7:2)
|
|
foo2 (module2:6:9)
|
|
(anonymous) (module3:4:0)
|
|
local:foo1
|
|
[
|
|
[0] : c1 = 12
|
|
[1] : g1 = 2
|
|
]
|
|
module
|
|
[
|
|
[0] : a1 = 10
|
|
[1] : b1 = 11
|
|
[2] : foo1 = function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; }
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#0
|
|
let g1 = 2;
|
|
#debugger;
|
|
return a1 + b1 + c1 + g1;
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
c1 =
|
|
{
|
|
description : 12
|
|
type : number
|
|
value : 12
|
|
}
|
|
Evaluating: ++c1
|
|
updated c1 =
|
|
{
|
|
description : 13
|
|
type : number
|
|
value : 13
|
|
}
|
|
Evaluating: --c1
|
|
g1 =
|
|
{
|
|
description : 2
|
|
type : number
|
|
value : 2
|
|
}
|
|
Evaluating: ++g1
|
|
updated g1 =
|
|
{
|
|
description : 3
|
|
type : number
|
|
value : 3
|
|
}
|
|
Evaluating: --g1
|
|
a1 =
|
|
{
|
|
description : 10
|
|
type : number
|
|
value : 10
|
|
}
|
|
Evaluating: ++a1
|
|
updated a1 =
|
|
{
|
|
description : 11
|
|
type : number
|
|
value : 11
|
|
}
|
|
Evaluating: --a1
|
|
b1 =
|
|
{
|
|
description : 11
|
|
type : number
|
|
value : 11
|
|
}
|
|
Evaluating: ++b1
|
|
updated b1 =
|
|
{
|
|
description : 12
|
|
type : number
|
|
value : 12
|
|
}
|
|
Evaluating: --b1
|
|
foo1 =
|
|
{
|
|
className : Function
|
|
description : function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
local:foo2
|
|
[
|
|
[0] : c2 = 22
|
|
]
|
|
module
|
|
[
|
|
[0] : a2 = 20
|
|
[1] : foo1 = function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; }
|
|
[2] : b2 = 21
|
|
[3] : foo2 = function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; }
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#1
|
|
let c2 = 22;
|
|
return #foo1() + a2 + b2 + c2;
|
|
}
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
c2 =
|
|
{
|
|
description : 22
|
|
type : number
|
|
value : 22
|
|
}
|
|
Evaluating: ++c2
|
|
updated c2 =
|
|
{
|
|
description : 23
|
|
type : number
|
|
value : 23
|
|
}
|
|
Evaluating: --c2
|
|
a2 =
|
|
{
|
|
description : 20
|
|
type : number
|
|
value : 20
|
|
}
|
|
Evaluating: ++a2
|
|
updated a2 =
|
|
{
|
|
description : 21
|
|
type : number
|
|
value : 21
|
|
}
|
|
Evaluating: --a2
|
|
foo1 =
|
|
{
|
|
className : Function
|
|
description : function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
b2 =
|
|
{
|
|
description : 21
|
|
type : number
|
|
value : 21
|
|
}
|
|
Evaluating: ++b2
|
|
updated b2 =
|
|
{
|
|
description : 22
|
|
type : number
|
|
value : 22
|
|
}
|
|
Evaluating: --b2
|
|
foo2 =
|
|
{
|
|
className : Function
|
|
description : function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
module
|
|
[
|
|
[0] : foo2 = function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; }
|
|
[1] : a3 = 30
|
|
[2] : b3 = 31
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#2
|
|
export let b3 = 31;
|
|
#foo2();
|
|
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
foo2 =
|
|
{
|
|
className : Function
|
|
description : function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
a3 =
|
|
{
|
|
description : 30
|
|
type : number
|
|
value : 30
|
|
}
|
|
Evaluating: ++a3
|
|
updated a3 =
|
|
{
|
|
description : 31
|
|
type : number
|
|
value : 31
|
|
}
|
|
Evaluating: --a3
|
|
b3 =
|
|
{
|
|
description : 31
|
|
type : number
|
|
value : 31
|
|
}
|
|
Evaluating: ++b3
|
|
updated b3 =
|
|
{
|
|
description : 32
|
|
type : number
|
|
value : 32
|
|
}
|
|
Evaluating: --b3
|
|
|
|
Running test: testAnother
|
|
(anonymous) (module4:5:13)
|
|
bar (module4:5:24)
|
|
(anonymous) (module4:7:0)
|
|
local
|
|
[
|
|
]
|
|
closure:bar
|
|
[
|
|
[0] : a = 0
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#0
|
|
let a = 0;
|
|
(() => {a; #debugger;})();
|
|
};
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
a =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: ++a
|
|
updated a =
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Evaluating: --a
|
|
local:bar
|
|
[
|
|
[0] : a = 0
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#1
|
|
let a = 0;
|
|
(() => {a; debugger;})#();
|
|
};
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
a =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: ++a
|
|
updated a =
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Evaluating: --a
|
|
module
|
|
[
|
|
[0] : a = 1
|
|
[1] : b = 2
|
|
[2] : bar = function bar() { let a = 0; (() => {a; debugger;})(); }
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#2
|
|
};
|
|
#bar();
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
a =
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Evaluating: ++a
|
|
updated a =
|
|
{
|
|
description : 2
|
|
type : number
|
|
value : 2
|
|
}
|
|
Evaluating: --a
|
|
b =
|
|
{
|
|
description : 2
|
|
type : number
|
|
value : 2
|
|
}
|
|
Evaluating: ++b
|
|
updated b =
|
|
{
|
|
description : 3
|
|
type : number
|
|
value : 3
|
|
}
|
|
Evaluating: --b
|
|
bar =
|
|
{
|
|
className : Function
|
|
description : function bar() { let a = 0; (() => {a; debugger;})(); }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
|
|
Running test: testDifferentModuleVariables
|
|
(anonymous) (module5:5:0)
|
|
module
|
|
[
|
|
[0] : b2 = 21
|
|
[1] : a = 0
|
|
[2] : b = 0
|
|
[3] : c = 0
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#0
|
|
export var c = 0;
|
|
#debugger;
|
|
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
b2 =
|
|
{
|
|
description : 21
|
|
type : number
|
|
value : 21
|
|
}
|
|
Evaluating: ++b2
|
|
updated b2 =
|
|
{
|
|
description : 21
|
|
type : number
|
|
value : 21
|
|
}
|
|
Evaluating: --b2
|
|
a =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: ++a
|
|
updated a =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: --a
|
|
b =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: ++b
|
|
updated b =
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Evaluating: --b
|
|
c =
|
|
{
|
|
description : 0
|
|
type : number
|
|
value : 0
|
|
}
|
|
Evaluating: ++c
|
|
updated c =
|
|
{
|
|
description : 1
|
|
type : number
|
|
value : 1
|
|
}
|
|
Evaluating: --c
|
|
|
|
Running test: testCapturedLocalVariable
|
|
(anonymous) (module6:2:25)
|
|
(anonymous) (module6:2:37)
|
|
local
|
|
[
|
|
[0] : y = 5
|
|
]
|
|
module
|
|
[
|
|
[0] : x = 5
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#0
|
|
let x = 5;
|
|
(function() { let y = x; #debugger; })()
|
|
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
y =
|
|
{
|
|
description : 5
|
|
type : number
|
|
value : 5
|
|
}
|
|
Evaluating: ++y
|
|
updated y =
|
|
{
|
|
description : 6
|
|
type : number
|
|
value : 6
|
|
}
|
|
Evaluating: --y
|
|
x =
|
|
{
|
|
description : 5
|
|
type : number
|
|
value : 5
|
|
}
|
|
Evaluating: ++x
|
|
updated x =
|
|
{
|
|
description : 6
|
|
type : number
|
|
value : 6
|
|
}
|
|
Evaluating: --x
|
|
module
|
|
[
|
|
[0] : x = 5
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#1
|
|
let x = 5;
|
|
(function() { let y = x; debugger; })#()
|
|
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
x =
|
|
{
|
|
description : 5
|
|
type : number
|
|
value : 5
|
|
}
|
|
Evaluating: ++x
|
|
updated x =
|
|
{
|
|
description : 6
|
|
type : number
|
|
value : 6
|
|
}
|
|
Evaluating: --x
|
|
|
|
Running test: testLocalVariableToplevel
|
|
(anonymous) (module7:2:0)
|
|
module
|
|
[
|
|
[0] : x = 5
|
|
]
|
|
global
|
|
[
|
|
...
|
|
]
|
|
Check variables in frame#0
|
|
let x = 5;
|
|
#debugger;
|
|
|
|
|
|
Array =
|
|
{
|
|
className : Function
|
|
description : function Array() { [native code] }
|
|
objectId : <objectId>
|
|
type : function
|
|
}
|
|
x =
|
|
{
|
|
description : 5
|
|
type : number
|
|
value : 5
|
|
}
|
|
Evaluating: ++x
|
|
updated x =
|
|
{
|
|
description : 6
|
|
type : number
|
|
value : 6
|
|
}
|
|
Evaluating: --x
|