diff --git a/.eslintignore b/.eslintignore index c779e7a76d41..f474d9559b50 100644 --- a/.eslintignore +++ b/.eslintignore @@ -144,6 +144,9 @@ devtools/server/tests/unit/babel_and_browserify_script_with_source_map.js devtools/server/tests/unit/setBreakpoint* devtools/server/tests/unit/sourcemapped.js +# Testing syntax error +devtools/client/webconsole/test/browser/test-syntaxerror-worklet.js + # devtools specific format test file devtools/server/tests/unit/xpcshell_debugging_script.js diff --git a/devtools/client/webconsole/test/browser/.eslintrc.js b/devtools/client/webconsole/test/browser/.eslintrc.js index dd345712f031..9a3b883a23e7 100644 --- a/devtools/client/webconsole/test/browser/.eslintrc.js +++ b/devtools/client/webconsole/test/browser/.eslintrc.js @@ -4,7 +4,10 @@ module.exports = { // Extend from the shared list of defined globals for mochitests. "extends": "../../../../.eslintrc.mochitests.js", "overrides": [{ - "files": ["test-dynamic-import.js"], + "files": [ + "test-dynamic-import.js", + "test-error-worklet.js", + ], "parserOptions": { "sourceType": "module", }, diff --git a/devtools/client/webconsole/test/browser/browser.ini b/devtools/client/webconsole/test/browser/browser.ini index 5d47c606a19a..e1ff4e91ee6e 100644 --- a/devtools/client/webconsole/test/browser/browser.ini +++ b/devtools/client/webconsole/test/browser/browser.ini @@ -59,6 +59,8 @@ support-files = test-error-worker.html test-error-worker.js test-error-worker2.js + test-error-worklet.html + test-error-worklet.js test-eval-error.html test-eval-in-stackframe.html test-eval-sources.html @@ -140,6 +142,7 @@ support-files = test-subresource-security-error.html test-subresource-security-error.js test-subresource-security-error.js^headers^ + test-syntaxerror-worklet.js test-time-methods.html test-trackingprotection-securityerrors.html test-warning-groups.html @@ -502,3 +505,4 @@ skip-if = (os == "win" && bits == 32) && !debug # Bug 1560261 [browser_webconsole_websocket.js] [browser_webconsole_worker_error.js] [browser_webconsole_worker_evaluate.js] +[browser_webconsole_worklet_error.js] diff --git a/devtools/client/webconsole/test/browser/browser_webconsole_worklet_error.js b/devtools/client/webconsole/test/browser/browser_webconsole_worklet_error.js new file mode 100644 index 000000000000..d369eee28b26 --- /dev/null +++ b/devtools/client/webconsole/test/browser/browser_webconsole_worklet_error.js @@ -0,0 +1,27 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Tests that syntax errors in worklet scripts show in the console and that +// throwing uncaught errors and primitive values in worklets shows a stack. + +"use strict"; + +const TEST_URI = + "https://example.com/browser/devtools/client/webconsole/" + + "test/browser/test-error-worklet.html"; + +add_task(async function() { + await SpecialPowers.pushPrefEnv({ + set: [["dom.audioworklet.enabled", true], ["dom.worklet.enabled", true]], + }); + + const hud = await openNewTabAndConsole(TEST_URI); + + await waitFor(() => + findMessage(hud, "SyntaxError: duplicate formal argument") + ); + ok(true, "Received expected SyntaxError"); + + await checkMessageStack(hud, "addModule", [18, 21]); + await checkMessageStack(hud, "process", [7, 12]); +}); diff --git a/devtools/client/webconsole/test/browser/test-error-worklet.html b/devtools/client/webconsole/test/browser/test-error-worklet.html new file mode 100644 index 000000000000..249e184fe637 --- /dev/null +++ b/devtools/client/webconsole/test/browser/test-error-worklet.html @@ -0,0 +1,24 @@ + + +
+