forked from facebook/hermes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheval.js
73 lines (67 loc) · 1.81 KB
/
eval.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
// RUN: %hdb %s < %s.debug | %FileCheck --match-full-lines %s
// REQUIRES: debugger
var globalVar = "omega";
function func1(closure, f1param) { // frame 4
var f1v1 = "alpha";
var f1v2 = "beta";
function func1b() { // frame 3
var f1bv1 = "gamma";
function func1c() { // frame 2
var f1cv1 = 19;
closure();
}
func1c();
}
func1b();
}
function func2() { // frame 1
var f2v1 = "baker";
var f2v2 = "charlie";
function func2b() { // frame 0
var f2bv1 = "dog";
debugger;
print(globalVar);
print(f2bv1);
}
func2b();
}
func1(func2, "tau")
// CHECK: Break on 'debugger' statement in func2b: {{.*}}:32:9
// CHECK-NEXT: Checking literals
// CHECK-NEXT: { a: bc }
// CHECK-NEXT: {
// CHECK-NEXT: d: ef
// CHECK-NEXT: g: [object Object]
// CHECK-NEXT: }
// CHECK-NEXT: Selected frame 0
// CHECK-NEXT: 0: omega
// CHECK-NEXT: 1: dog
// CHECK-NEXT: 2: charlie
// CHECK-NEXT: 3: dog && charlie
// CHECK-NEXT: Selected frame 1
// CHECK-NEXT: 4: baker
// CHECK-NEXT: 5: charlie
// CHECK-NEXT: Selected frame 2
// CHECK-NEXT: 6: 19gammaalpha
// CHECK-NEXT: Selected frame 3
// CHECK-NEXT: 7: gammaalpha
// CHECK-NEXT: Selected frame 2
// CHECK-NEXT: 8: tau
// CHECK-NEXT: Selected frame 3
// CHECK-NEXT: 9: tau
// CHECK-NEXT: Selected frame 4
// CHECK-NEXT: 10: tau
// CHECK-NEXT: 11: omega
// CHECK-NEXT: Selected frame 2
// CHECK-NEXT: setting globalVar
// CHECK-NEXT: Selected frame 0
// CHECK-NEXT: setting f2bv1
// CHECK-NEXT: Continuing execution
// CHECK-NEXT: var modified by debugger
// CHECK-NEXT: another var modified by debugger