<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf8"> <title>Test for Bug 819670 - Web console object inspection does not handle native getters throwing very well</title> <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript;version=1.8" src="common.js"></script> <!-- Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ --> </head> <body> <p>Test for Bug 819670 - Web console object inspection does not handle native getters throwing very well</p> <script class="testbody" type="text/javascript;version=1.8"> SimpleTest.waitForExplicitFinish(); function startTest() { removeEventListener("load", startTest); attachConsoleToTab([], onAttach); } function onAttach(aState, aResponse) { onEvaluate = onEvaluate.bind(null, aState); aState.client.evaluateJS("document.__proto__", onEvaluate); } function onEvaluate(aState, aResponse) { checkObject(aResponse, { from: aState.actor, input: "document.__proto__", result: { type: "object", actor: /[a-z]/, }, }); ok(!aResponse.exception, "no eval exception"); ok(!aResponse.helperResult, "no helper result"); onInspect = onInspect.bind(null, aState); let client = new ObjectClient(aState.dbgClient, aResponse.result); client.getPrototypeAndProperties(onInspect); } function onInspect(aState, aResponse) { ok(!aResponse.error, "no response error"); let expectedProps = { "addBroadcastListenerFor": { value: { type: "object" } }, "commandDispatcher": { get: { type: "object" } }, "getBoxObjectFor": { value: { type: "object" } }, "getElementsByAttribute": { value: { type: "object" } }, }; let props = aResponse.ownProperties; ok(props, "response properties available"); if (props) { ok(Object.keys(props).length > Object.keys(expectedProps).length, "number of enumerable properties"); checkObject(props, expectedProps); } closeDebugger(aState, function() { SimpleTest.finish(); }); } addEventListener("load", startTest); </script> </body> </html>