--- a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js
@@ -249,22 +249,24 @@ stubPreparedMessages.set("console.assert
"ownProperties": {
"message": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "foobar"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 1,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
- "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn8.child1/obj31\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"message\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"foobar\"}},\"ownPropertiesLength\":1,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"assert\",\"userProvidedStyles\":[]}",
+ "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn8.child1/obj31\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"message\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"foobar\"}},\"ownSymbols\":[],\"ownPropertiesLength\":1,\"ownSymbolsLength\":0,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"assert\",\"userProvidedStyles\":[]}",
"stacktrace": [
{
"columnNumber": 27,
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"functionName": "triggerPacket",
"language": 2,
"lineNumber": 1
}
@@ -530,22 +532,24 @@ stubPreparedMessages.set("console.log('m
},
"blue": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "blueValue"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 3,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
- "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"myobject\",{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj35\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":3,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"red\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"redValue\"},\"green\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"greenValue\"},\"blue\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"blueValue\"}},\"ownPropertiesLength\":3,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[]}",
+ "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"myobject\",{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj35\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":3,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"red\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"redValue\"},\"green\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"greenValue\"},\"blue\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"blueValue\"}},\"ownSymbols\":[],\"ownPropertiesLength\":3,\"ownSymbolsLength\":0,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[]}",
"stacktrace": null,
"frame": {
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"line": 1,
"column": 27
},
"groupId": null,
"exceptionDocURL": null,
@@ -1142,22 +1146,24 @@ stubPreparedMessages.set("console.dir({C
},
"black": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "K"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 4,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
- "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj39\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":4,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"cyan\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"C\"},\"magenta\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"M\"},\"yellow\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"Y\"},\"black\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"K\"}},\"ownPropertiesLength\":4,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"dir\",\"userProvidedStyles\":[]}",
+ "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\",\"line\":1,\"column\":27},\"groupId\":null,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj39\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":4,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"cyan\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"C\"},\"magenta\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"M\"},\"yellow\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"Y\"},\"black\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"K\"}},\"ownSymbols\":[],\"ownPropertiesLength\":4,\"ownSymbolsLength\":0,\"safeGetterValues\":{}}}],\"source\":\"console-api\",\"type\":\"dir\",\"userProvidedStyles\":[]}",
"stacktrace": null,
"frame": {
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"line": 1,
"column": 27
},
"groupId": null,
"exceptionDocURL": null,
@@ -1385,17 +1391,19 @@ stubPackets.set("console.assert(false, {
"ownProperties": {
"message": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "foobar"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 1,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
"columnNumber": 27,
"counter": null,
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"functionName": "triggerPacket",
@@ -1653,17 +1661,19 @@ stubPackets.set("console.log('myobject',
},
"blue": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "blueValue"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 3,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
"columnNumber": 27,
"counter": null,
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"functionName": "triggerPacket",
@@ -2243,17 +2253,19 @@ stubPackets.set("console.dir({C, M, Y, K
},
"black": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": "K"
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 4,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
],
"columnNumber": 27,
"counter": null,
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
"functionName": "triggerPacket",
--- a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/evaluationResult.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/evaluationResult.js
@@ -115,21 +115,23 @@ stubPreparedMessages.set("inspect({a: 1}
"ownProperties": {
"a": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": 1
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 1,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
},
- "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj35\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"a\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":1}},\"ownPropertiesLength\":1,\"safeGetterValues\":{}}},\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null}",
+ "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj35\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"a\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":1}},\"ownSymbols\":[],\"ownPropertiesLength\":1,\"ownSymbolsLength\":0,\"safeGetterValues\":{}}},\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null}",
"stacktrace": null,
"frame": null,
"groupId": null,
"userProvidedStyles": null,
"notes": null,
"indent": 0
}));
@@ -278,17 +280,19 @@ stubPackets.set("inspect({a: 1})", {
"ownProperties": {
"a": {
"configurable": true,
"enumerable": true,
"writable": true,
"value": 1
}
},
+ "ownSymbols": [],
"ownPropertiesLength": 1,
+ "ownSymbolsLength": 0,
"safeGetterValues": {}
}
}
},
"notes": null
});
stubPackets.set("longString message Error", {
--- a/devtools/server/tests/unit/test_objectgrips-16.js
+++ b/devtools/server/tests/unit/test_objectgrips-16.js
@@ -26,79 +26,122 @@ async function run_test_with_server(serv
gClient = new DebuggerClient(server.connectPipe());
await gClient.connect();
const [,, threadClient] = await attachTestTabAndResume(gClient, "test-grips");
gThreadClient = threadClient;
test_symbol_grip();
}
-function test_symbol_grip() {
- gThreadClient.addOneTimeListener("paused", function (event, packet) {
- let args = packet.frame.arguments;
-
- do_check_eq(args[0].class, "Object");
-
- let objClient = gThreadClient.pauseGrip(args[0]);
- objClient.getPrototypeAndProperties(function (response) {
- do_check_eq(response.ownProperties.x.configurable, true);
- do_check_eq(response.ownProperties.x.enumerable, true);
- do_check_eq(response.ownProperties.x.writable, true);
- do_check_eq(response.ownProperties.x.value, 10);
+async function test_symbol_grip() {
+ gThreadClient.addOneTimeListener("paused", async function (event, packet) {
+ let [grip] = packet.frame.arguments;
- const [
- firstUnnamedSymbol,
- secondUnnamedSymbol,
- namedSymbol,
- iteratorSymbol,
- ] = response.ownSymbols;
-
- do_check_eq(firstUnnamedSymbol.name, "Symbol()");
- do_check_eq(firstUnnamedSymbol.descriptor.configurable, true);
- do_check_eq(firstUnnamedSymbol.descriptor.enumerable, true);
- do_check_eq(firstUnnamedSymbol.descriptor.writable, true);
- do_check_eq(firstUnnamedSymbol.descriptor.value, "first unnamed symbol");
+ // Checks grip.preview properties.
+ check_preview(grip);
- do_check_eq(secondUnnamedSymbol.name, "Symbol()");
- do_check_eq(secondUnnamedSymbol.descriptor.configurable, true);
- do_check_eq(secondUnnamedSymbol.descriptor.enumerable, true);
- do_check_eq(secondUnnamedSymbol.descriptor.writable, true);
- do_check_eq(secondUnnamedSymbol.descriptor.value, "second unnamed symbol");
-
- do_check_eq(namedSymbol.name, "Symbol(named)");
- do_check_eq(namedSymbol.descriptor.configurable, true);
- do_check_eq(namedSymbol.descriptor.enumerable, true);
- do_check_eq(namedSymbol.descriptor.writable, true);
- do_check_eq(namedSymbol.descriptor.value, "named symbol");
+ let objClient = gThreadClient.pauseGrip(grip);
+ let response = await objClient.getPrototypeAndProperties();
+ // Checks the result of getPrototypeAndProperties.
+ check_prototype_and_properties(response);
- do_check_eq(iteratorSymbol.name, "Symbol(Symbol.iterator)");
- do_check_eq(iteratorSymbol.descriptor.configurable, true);
- do_check_eq(iteratorSymbol.descriptor.enumerable, true);
- do_check_eq(iteratorSymbol.descriptor.writable, true);
- do_check_eq(iteratorSymbol.descriptor.value.class, "Function");
-
- do_check_true(response.prototype != undefined);
-
- let protoClient = gThreadClient.pauseGrip(response.prototype);
- protoClient.getOwnPropertyNames(function (response) {
- do_check_true(response.ownPropertyNames.toString != undefined);
-
- gThreadClient.resume(function () {
- gClient.close().then(gCallback);
- });
- });
- });
+ await gThreadClient.resume();
+ await gClient.close();
+ gCallback();
});
gDebuggee.eval(`
stopMe({
[Symbol()]: "first unnamed symbol",
[Symbol()]: "second unnamed symbol",
[Symbol("named")] : "named symbol",
[Symbol.iterator] : function* () {
yield 1;
yield 2;
},
x: 10,
});
`);
}
+function check_preview(grip) {
+ do_check_eq(grip.class, "Object");
+
+ const {preview} = grip;
+ do_check_eq(preview.ownProperties.x.configurable, true);
+ do_check_eq(preview.ownProperties.x.enumerable, true);
+ do_check_eq(preview.ownProperties.x.writable, true);
+ do_check_eq(preview.ownProperties.x.value, 10);
+
+ const [
+ firstUnnamedSymbol,
+ secondUnnamedSymbol,
+ namedSymbol,
+ iteratorSymbol,
+ ] = preview.ownSymbols;
+
+ do_check_eq(firstUnnamedSymbol.name, undefined);
+ do_check_eq(firstUnnamedSymbol.type, "symbol");
+ do_check_eq(firstUnnamedSymbol.descriptor.configurable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.enumerable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.writable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.value, "first unnamed symbol");
+
+ do_check_eq(secondUnnamedSymbol.name, undefined);
+ do_check_eq(secondUnnamedSymbol.type, "symbol");
+ do_check_eq(secondUnnamedSymbol.descriptor.configurable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.enumerable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.writable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.value, "second unnamed symbol");
+
+ do_check_eq(namedSymbol.name, "named");
+ do_check_eq(namedSymbol.type, "symbol");
+ do_check_eq(namedSymbol.descriptor.configurable, true);
+ do_check_eq(namedSymbol.descriptor.enumerable, true);
+ do_check_eq(namedSymbol.descriptor.writable, true);
+ do_check_eq(namedSymbol.descriptor.value, "named symbol");
+
+ do_check_eq(iteratorSymbol.name, "Symbol.iterator");
+ do_check_eq(iteratorSymbol.type, "symbol");
+ do_check_eq(iteratorSymbol.descriptor.configurable, true);
+ do_check_eq(iteratorSymbol.descriptor.enumerable, true);
+ do_check_eq(iteratorSymbol.descriptor.writable, true);
+ do_check_eq(iteratorSymbol.descriptor.value.class, "Function");
+}
+
+function check_prototype_and_properties(response) {
+ do_check_eq(response.ownProperties.x.configurable, true);
+ do_check_eq(response.ownProperties.x.enumerable, true);
+ do_check_eq(response.ownProperties.x.writable, true);
+ do_check_eq(response.ownProperties.x.value, 10);
+
+ const [
+ firstUnnamedSymbol,
+ secondUnnamedSymbol,
+ namedSymbol,
+ iteratorSymbol,
+ ] = response.ownSymbols;
+
+ do_check_eq(firstUnnamedSymbol.name, "Symbol()");
+ do_check_eq(firstUnnamedSymbol.descriptor.configurable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.enumerable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.writable, true);
+ do_check_eq(firstUnnamedSymbol.descriptor.value, "first unnamed symbol");
+
+ do_check_eq(secondUnnamedSymbol.name, "Symbol()");
+ do_check_eq(secondUnnamedSymbol.descriptor.configurable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.enumerable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.writable, true);
+ do_check_eq(secondUnnamedSymbol.descriptor.value, "second unnamed symbol");
+
+ do_check_eq(namedSymbol.name, "Symbol(named)");
+ do_check_eq(namedSymbol.descriptor.configurable, true);
+ do_check_eq(namedSymbol.descriptor.enumerable, true);
+ do_check_eq(namedSymbol.descriptor.writable, true);
+ do_check_eq(namedSymbol.descriptor.value, "named symbol");
+
+ do_check_eq(iteratorSymbol.name, "Symbol(Symbol.iterator)");
+ do_check_eq(iteratorSymbol.descriptor.configurable, true);
+ do_check_eq(iteratorSymbol.descriptor.enumerable, true);
+ do_check_eq(iteratorSymbol.descriptor.writable, true);
+ do_check_eq(iteratorSymbol.descriptor.value.class, "Function");
+}
+