Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(751)

Unified Diff: test/debugger/debug/debug-scopes-suspended-generators.js

Issue 2513343004: [debug-wrapper] Migrate suspended generator scope test (Closed)
Patch Set: Rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/debugger/test-api.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/debugger/debug/debug-scopes-suspended-generators.js
diff --git a/test/mjsunit/debug-scopes-suspended-generators.js b/test/debugger/debug/debug-scopes-suspended-generators.js
similarity index 64%
rename from test/mjsunit/debug-scopes-suspended-generators.js
rename to test/debugger/debug/debug-scopes-suspended-generators.js
index f4750b7f769f95751d80f27c23e94f7e23ac833e..38fb7fab937f488cf87256b59c09de60718dd604 100644
--- a/test/mjsunit/debug-scopes-suspended-generators.js
+++ b/test/debugger/debug/debug-scopes-suspended-generators.js
@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Flags: --expose-debug-as debug --allow-natives-syntax --ignition
+// Flags: --ignition
// The functions used for testing backtraces. They are at the top to make the
// testing of source line/column easier.
-// Get the Debug object exposed from the debug context global object.
var Debug = debug.Debug;
var test_name;
@@ -30,24 +29,21 @@ function EndTest() {
// Check that two scope are the same.
function assertScopeMirrorEquals(scope1, scope2) {
assertEquals(scope1.scopeType(), scope2.scopeType());
- assertEquals(scope1.frameIndex(), scope2.frameIndex());
assertEquals(scope1.scopeIndex(), scope2.scopeIndex());
assertPropertiesEqual(scope1.scopeObject().value(),
scope2.scopeObject().value());
}
// Check that the scope chain contains the expected types of scopes.
-function CheckScopeChain(scopes, gen_mirror) {
- var all_scopes = gen_mirror.allScopes();
- assertEquals(scopes.length, gen_mirror.scopeCount());
+function CheckScopeChain(scopes, gen) {
+ var all_scopes = Debug.generatorScopes(gen);
+ assertEquals(scopes.length, Debug.generatorScopeCount(gen));
assertEquals(scopes.length, all_scopes.length,
"FrameMirror.allScopes length");
for (var i = 0; i < scopes.length; i++) {
- var scope = gen_mirror.scope(i);
- assertTrue(scope.isScope());
+ var scope = all_scopes[i];
assertEquals(scopes[i], scope.scopeType(),
`Scope ${i} has unexpected type`);
- assertScopeMirrorEquals(all_scopes[i], scope);
// Check the global object when hitting the global scope.
if (scopes[i] == debug.ScopeType.Global) {
@@ -60,17 +56,21 @@ function CheckScopeChain(scopes, gen_mirror) {
// Check that the content of the scope is as expected. For functions just check
// that there is a function.
-function CheckScopeContent(content, number, gen_mirror) {
- var scope = gen_mirror.scope(number);
+function CheckScopeContent(content, number, gen) {
+ var scope = Debug.generatorScope(gen, number);
var count = 0;
for (var p in content) {
var property_mirror = scope.scopeObject().property(p);
- assertFalse(property_mirror.isUndefined(),
- 'property ' + p + ' not found in scope');
+ if (content[p] === undefined) {
+ assertTrue(property_mirror === undefined);
+ } else {
+ assertFalse(property_mirror === undefined,
+ 'property ' + p + ' not found in scope');
+ }
if (typeof(content[p]) === 'function') {
- assertTrue(property_mirror.value().isFunction());
+ assertTrue(typeof property_mirror == "function");
} else {
- assertEquals(content[p], property_mirror.value().value(),
+ assertEquals(content[p], property_mirror,
'property ' + p + ' has unexpected value');
}
count++;
@@ -79,15 +79,15 @@ function CheckScopeContent(content, number, gen_mirror) {
// 'arguments' and might be exposed in the local and closure scope. Just
// ignore this.
var scope_size = scope.scopeObject().properties().length;
- if (!scope.scopeObject().property('arguments').isUndefined()) {
+ if (scope.scopeObject().property('arguments') !== undefined) {
scope_size--;
}
// Ditto for 'this'.
- if (!scope.scopeObject().property('this').isUndefined()) {
+ if (scope.scopeObject().property('this') !== undefined) {
scope_size--;
}
// Temporary variables introduced by the parser have not been materialized.
- assertTrue(scope.scopeObject().property('').isUndefined());
+ assertTrue(scope.scopeObject().property('') === undefined);
if (count != scope_size) {
print('Names found in scope:');
@@ -107,11 +107,10 @@ function *gen1() {
}
var g = gen1();
-var gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({}, 0, g);
// Closure scope with a parameter.
@@ -121,11 +120,10 @@ function *gen2(a) {
}
g = gen2(42);
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 42}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 42}, 0, g);
// Closure scope with a parameter.
@@ -136,14 +134,13 @@ function *gen3(a) {
}
g = gen3(0);
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 0, b: undefined}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 0, b: undefined}, 0, g);
g.next(); // Create b.
-CheckScopeContent({a: 0, b: 1}, 0, gm);
+CheckScopeContent({a: 0, b: 1}, 0, g);
// Closure scope with a parameter.
@@ -155,17 +152,16 @@ function *gen4(a, b) {
}
g = gen4(0, 1);
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 0, b: 1, x: undefined, y: undefined}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 0, b: 1, x: undefined, y: undefined}, 0, g);
g.next(); // Create x.
-CheckScopeContent({a: 0, b: 1, x: 2, y: undefined}, 0, gm);
+CheckScopeContent({a: 0, b: 1, x: 2, y: undefined}, 0, g);
g.next(); // Create y.
-CheckScopeContent({a: 0, b: 1, x: 2, y: 3}, 0, gm);
+CheckScopeContent({a: 0, b: 1, x: 2, y: 3}, 0, g);
// Closure introducing local variable using eval.
@@ -176,11 +172,10 @@ function *gen5(a) {
g = gen5(1);
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 1, b: 2}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 1, b: 2}, 0, g);
// Single empty with block.
@@ -194,17 +189,16 @@ function *gen6() {
g = gen6();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.With,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({}, 0, g);
g.next();
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
+ debug.ScopeType.Global], g);
// Nested empty with blocks.
@@ -220,13 +214,12 @@ function *gen7() {
g = gen7();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.With,
debug.ScopeType.With,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({}, 0, g);
// Nested with blocks using in-place object literals.
@@ -242,16 +235,15 @@ function *gen8() {
g = gen8();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.With,
debug.ScopeType.With,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 2, b: 1}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 2, b: 1}, 0, g);
g.next();
-CheckScopeContent({a: 1, b: 2}, 0, gm);
+CheckScopeContent({a: 1, b: 2}, 0, g);
// Catch block.
@@ -266,12 +258,11 @@ function *gen9() {
g = gen9();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Catch,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({e: 42}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({e: 42}, 0, g);
// For statement with block scope.
@@ -282,17 +273,16 @@ function *gen10() {
g = gen10();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Block,
debug.ScopeType.Block,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({i: 0}, 0, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({i: 0}, 0, g);
g.next();
-CheckScopeContent({i: 1}, 0, gm);
-CheckScopeContent({i: 0}, 1, gm); // Additional block scope with i = 0;
+CheckScopeContent({i: 1}, 0, g);
+CheckScopeContent({i: 0}, 1, g); // Additional block scope with i = 0;
// Nested generators.
@@ -308,16 +298,15 @@ function *gen11() {
yield* gen12;
}
-g = gen11();
-g.next();
+gen11().next();
+g = gen12;
-gm = debug.MakeMirror(gen12);
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 1}, 0, gm);
-CheckScopeContent({a: 0}, 1, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 1}, 0, g);
+CheckScopeContent({a: 0}, 1, g);
// Set a variable in an empty scope.
@@ -327,9 +316,8 @@ function *gen13() {
}
var g = gen13();
-var gm = debug.MakeMirror(g);
-assertThrows(() => gm.scope(0).setVariableValue("a", 42));
-CheckScopeContent({}, 0, gm);
+assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("a", 42));
+CheckScopeContent({}, 0, g);
// Set a variable in a simple scope.
@@ -343,11 +331,10 @@ function *gen14() {
var g = gen14();
assertEquals(1, g.next().value);
-var gm = debug.MakeMirror(g);
-CheckScopeContent({a: 0}, 0, gm);
+CheckScopeContent({a: 0}, 0, g);
-gm.scope(0).setVariableValue("a", 1);
-CheckScopeContent({a: 1}, 0, gm);
+Debug.generatorScope(g, 0).setVariableValue("a", 1);
+CheckScopeContent({a: 1}, 0, g);
assertEquals(1, g.next().value);
@@ -367,36 +354,35 @@ function *gen15() {
var g = gen15();
assertEquals(1, g.next().value);
-var gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.With,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({a: 1, b: 2}, 0, gm);
-CheckScopeContent({c: 3, d: 4, e: undefined}, 1, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({a: 1, b: 2}, 0, g);
+CheckScopeContent({c: 3, d: 4, e: undefined}, 1, g);
// Variables don't exist in given scope.
-assertThrows(() => gm.scope(0).setVariableValue("c", 42));
-assertThrows(() => gm.scope(1).setVariableValue("a", 42));
+assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("c", 42));
+assertThrows(() => Debug.generatorScope(g, 1).setVariableValue("a", 42));
// Variables in with scope are immutable.
-assertThrows(() => gm.scope(0).setVariableValue("a", 3));
-assertThrows(() => gm.scope(0).setVariableValue("b", 3));
+assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("a", 3));
+assertThrows(() => Debug.generatorScope(g, 0).setVariableValue("b", 3));
-gm.scope(1).setVariableValue("c", 1);
-gm.scope(1).setVariableValue("e", 42);
+Debug.generatorScope(g, 1).setVariableValue("c", 1);
+Debug.generatorScope(g, 1).setVariableValue("e", 42);
-CheckScopeContent({a: 1, b: 2}, 0, gm);
-CheckScopeContent({c: 1, d: 4, e: 42}, 1, gm);
+CheckScopeContent({a: 1, b: 2}, 0, g);
+CheckScopeContent({c: 1, d: 4, e: 42}, 1, g);
assertEquals(5, g.next().value); // Initialized after set.
CheckScopeChain([debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
+ debug.ScopeType.Global], g);
-gm.scope(0).setVariableValue("e", 42);
+Debug.generatorScope(g, 0).setVariableValue("e", 42);
-CheckScopeContent({c: 1, d: 4, e: 42}, 0, gm);
+CheckScopeContent({c: 1, d: 4, e: 42}, 0, g);
assertEquals(42, g.next().value);
// Set a variable in nested with blocks using in-place object literals plus a
@@ -416,18 +402,17 @@ function *gen16() {
var g = gen16();
g.next();
-var gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Block,
debug.ScopeType.With,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({d: 4}, 0, gm);
-CheckScopeContent({a: 1, b: 2}, 1, gm);
-CheckScopeContent({c: 3}, 2, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({d: 4}, 0, g);
+CheckScopeContent({a: 1, b: 2}, 1, g);
+CheckScopeContent({c: 3}, 2, g);
-gm.scope(0).setVariableValue("d", 1);
-CheckScopeContent({d: 1}, 0, gm);
+Debug.generatorScope(g, 0).setVariableValue("d", 1);
+CheckScopeContent({d: 1}, 0, g);
assertEquals(1, g.next().value);
@@ -448,23 +433,26 @@ function *gen17() {
g = gen17();
g.next();
-gm = debug.MakeMirror(g);
CheckScopeChain([debug.ScopeType.Catch,
debug.ScopeType.Closure,
debug.ScopeType.Script,
- debug.ScopeType.Global], gm);
-CheckScopeContent({e: 42}, 0, gm);
-CheckScopeContent({xxxyyxxyx: 42284}, 2, gm);
+ debug.ScopeType.Global], g);
+CheckScopeContent({e: 42}, 0, g);
+CheckScopeContent({xxxyyxxyx: 42284,
+ printProtocolMessages : printProtocolMessages,
+ activeWrapper : activeWrapper,
+ DebugWrapper : DebugWrapper
+ }, 2, g);
-gm.scope(0).setVariableValue("e", 1);
-CheckScopeContent({e: 1}, 0, gm);
+Debug.generatorScope(g, 0).setVariableValue("e", 1);
+CheckScopeContent({e: 1}, 0, g);
assertEquals(1, g.next().value);
// Script scope.
-gm.scope(2).setVariableValue("xxxyyxxyx", 42);
+Debug.generatorScope(g, 2).setVariableValue("xxxyyxxyx", 42);
assertEquals(42, xxxyyxxyx);
// Global scope.
-assertThrows(() => gm.scope(3).setVariableValue("yyzyzzyz", 42));
+assertThrows(() => Debug.generatorScope(g, 3).setVariableValue("yyzyzzyz", 42));
assertEquals(4829, yyzyzzyz);
« no previous file with comments | « no previous file | test/debugger/test-api.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698