diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js')
-rw-r--r-- | devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js b/devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js new file mode 100644 index 000000000..fe9ff19eb --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_function-display-name.js @@ -0,0 +1,68 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests that anonymous functions appear in the stack frame list with either + * their displayName property or a SpiderMonkey-inferred name. + */ + +const TAB_URL = EXAMPLE_URL + "doc_function-display-name.html"; + +var gTab, gPanel, gDebugger; + +function test() { + let options = { + source: TAB_URL, + line: 1 + }; + initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => { + gTab = aTab; + gPanel = aPanel; + gDebugger = gPanel.panelWin; + + testAnonCall(); + }); +} + +function testAnonCall() { + let onCaretUpdated = waitForCaretUpdated(gPanel, 15); + let onScopes = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES); + callInTab(gTab, "evalCall"); + promise.all([onCaretUpdated, onScopes]).then(() => { + ok(isCaretPos(gPanel, 15), + "The source editor caret position was incorrect."); + is(gDebugger.gThreadClient.state, "paused", + "Should only be getting stack frames while paused."); + is(gDebugger.document.querySelectorAll(".dbg-stackframe").length, 3, + "Should have three frames."); + is(gDebugger.document.querySelector("#stackframe-0 .dbg-stackframe-title").getAttribute("value"), + "anonFunc", "Frame name should be 'anonFunc'."); + + testInferredName(); + }); +} + +function testInferredName() { + waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES).then(() => { + ok(isCaretPos(gPanel, 15), + "The source editor caret position was incorrect."); + is(gDebugger.gThreadClient.state, "paused", + "Should only be getting stack frames while paused."); + is(gDebugger.document.querySelectorAll(".dbg-stackframe").length, 3, + "Should have three frames."); + is(gDebugger.document.querySelector("#stackframe-0 .dbg-stackframe-title").getAttribute("value"), + "a/<", "Frame name should be 'a/<'."); + + resumeDebuggerThenCloseAndFinish(gPanel); + }); + + gDebugger.gThreadClient.resume(); +} + +registerCleanupFunction(function () { + gTab = null; + gPanel = null; + gDebugger = null; +}); |