diff options
Diffstat (limited to 'dom/base')
-rw-r--r-- | dom/base/nsJSUtils.cpp | 13 | ||||
-rw-r--r-- | dom/base/nsJSUtils.h | 8 | ||||
-rw-r--r-- | dom/base/test/jsmodules/test_syntaxError.html | 15 | ||||
-rw-r--r-- | dom/base/test/jsmodules/test_syntaxErrorAsync.html | 15 | ||||
-rw-r--r-- | dom/base/test/jsmodules/test_syntaxErrorInline.html | 15 | ||||
-rw-r--r-- | dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html | 15 |
6 files changed, 55 insertions, 26 deletions
diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp index c24adc739..65965d74b 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp @@ -308,17 +308,18 @@ nsJSUtils::CompileModule(JSContext* aCx, } nsresult -nsJSUtils::ModuleDeclarationInstantiation(JSContext* aCx, JS::Handle<JSObject*> aModule) +nsJSUtils::ModuleInstantiate(JSContext* aCx, JS::Handle<JSObject*> aModule) { - PROFILER_LABEL("nsJSUtils", "ModuleDeclarationInstantiation", + PROFILER_LABEL("nsJSUtils", "ModuleInstantiate", js::ProfileEntry::Category::JS); MOZ_ASSERT(aCx == nsContentUtils::GetCurrentJSContext()); MOZ_ASSERT(NS_IsMainThread()); + MOZ_ASSERT(nsContentUtils::IsInMicroTask()); NS_ENSURE_TRUE(xpc::Scriptability::Get(aModule).Allowed(), NS_OK); - if (!JS::ModuleDeclarationInstantiation(aCx, aModule)) { + if (!JS::ModuleInstantiate(aCx, aModule)) { return NS_ERROR_FAILURE; } @@ -326,9 +327,9 @@ nsJSUtils::ModuleDeclarationInstantiation(JSContext* aCx, JS::Handle<JSObject*> } nsresult -nsJSUtils::ModuleEvaluation(JSContext* aCx, JS::Handle<JSObject*> aModule) +nsJSUtils::ModuleEvaluate(JSContext* aCx, JS::Handle<JSObject*> aModule) { - PROFILER_LABEL("nsJSUtils", "ModuleEvaluation", + PROFILER_LABEL("nsJSUtils", "ModuleEvaluate", js::ProfileEntry::Category::JS); MOZ_ASSERT(aCx == nsContentUtils::GetCurrentJSContext()); @@ -338,7 +339,7 @@ nsJSUtils::ModuleEvaluation(JSContext* aCx, JS::Handle<JSObject*> aModule) NS_ENSURE_TRUE(xpc::Scriptability::Get(aModule).Allowed(), NS_OK); - if (!JS::ModuleEvaluation(aCx, aModule)) { + if (!JS::ModuleEvaluate(aCx, aModule)) { return NS_ERROR_FAILURE; } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h index 4affab2d3..9eea6ae83 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h @@ -116,11 +116,11 @@ public: JS::CompileOptions &aCompileOptions, JS::MutableHandle<JSObject*> aModule); - static nsresult ModuleDeclarationInstantiation(JSContext* aCx, - JS::Handle<JSObject*> aModule); + static nsresult ModuleInstantiate(JSContext* aCx, + JS::Handle<JSObject*> aModule); - static nsresult ModuleEvaluation(JSContext* aCx, - JS::Handle<JSObject*> aModule); + static nsresult ModuleEvaluate(JSContext* aCx, + JS::Handle<JSObject*> aModule); // Returns false if an exception got thrown on aCx. Passing a null // aElement is allowed; that wil produce an empty aScopeChain. diff --git a/dom/base/test/jsmodules/test_syntaxError.html b/dom/base/test/jsmodules/test_syntaxError.html index 53f95c96c..5bd688fe3 100644 --- a/dom/base/test/jsmodules/test_syntaxError.html +++ b/dom/base/test/jsmodules/test_syntaxError.html @@ -4,20 +4,27 @@ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script> var wasRun = false; - var hadSyntaxError = false; + var errorCount = 0; + var syntaxErrorCount = 0; + var eventCount = 0; SimpleTest.waitForExplicitFinish(); window.onerror = handleError; function handleError(message, url, line, column, error) { - hadSyntaxError = error instanceof SyntaxError; + errorCount++; + if (error instanceof SyntaxError) { + syntaxErrorCount++; + } } function testError() { ok(!wasRun, 'Check script was not run'); - ok(hadSyntaxError, 'Check that a SyntaxError was thrown'); + ok(errorCount == 1, 'Check that an error was reported'); + ok(syntaxErrorCount == 1, 'Check that a syntax error was reported'); + ok(eventCount == 0, 'Check that no error event was fired'); SimpleTest.finish(); } </script> -<script type="module" src="module_badSyntax.js"></script> +<script type="module" src="module_badSyntax.js" onerror="eventCount++"></script> <body onload='testError()'></body> diff --git a/dom/base/test/jsmodules/test_syntaxErrorAsync.html b/dom/base/test/jsmodules/test_syntaxErrorAsync.html index 35d923755..3593d9dd7 100644 --- a/dom/base/test/jsmodules/test_syntaxErrorAsync.html +++ b/dom/base/test/jsmodules/test_syntaxErrorAsync.html @@ -4,20 +4,27 @@ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script> var wasRun = false; - var hadSyntaxError = false; + var errorCount = 0; + var syntaxErrorCount = 0; + var eventCount = 0; SimpleTest.waitForExplicitFinish(); window.onerror = handleError; function handleError(message, url, line, column, error) { - hadSyntaxError = error instanceof SyntaxError; + errorCount++; + if (error instanceof SyntaxError) { + syntaxErrorCount++; + } } function testError() { ok(!wasRun, 'Check script was not run'); - ok(hadSyntaxError, 'Check that a SyntaxError was thrown'); + ok(errorCount == 1, 'Check that an error was reported'); + ok(syntaxErrorCount == 1, 'Check that a syntax error was reported'); + ok(eventCount == 0, 'Check that no error event was fired'); SimpleTest.finish(); } </script> -<script type="module" src="module_badSyntax.js" async></script> +<script type="module" src="module_badSyntax.js" async onerror="eventCount++"></script> <body onload='testError()'></body> diff --git a/dom/base/test/jsmodules/test_syntaxErrorInline.html b/dom/base/test/jsmodules/test_syntaxErrorInline.html index 705bc5902..b85b954ec 100644 --- a/dom/base/test/jsmodules/test_syntaxErrorInline.html +++ b/dom/base/test/jsmodules/test_syntaxErrorInline.html @@ -4,22 +4,29 @@ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script> var wasRun = false; - var hadSyntaxError = false; + var errorCount = 0; + var syntaxErrorCount = 0; + var eventCount = 0; SimpleTest.waitForExplicitFinish(); window.onerror = handleError; function handleError(message, url, line, column, error) { - hadSyntaxError = error instanceof SyntaxError; + errorCount++; + if (error instanceof SyntaxError) { + syntaxErrorCount++; + } } function testError() { ok(!wasRun, 'Check script was not run'); - ok(hadSyntaxError, 'Check that a SyntaxError was thrown'); + ok(errorCount == 1, 'Check that an error was reported'); + ok(syntaxErrorCount == 1, 'Check that a syntax error was reported'); + ok(eventCount == 0, 'Check that no error event was fired'); SimpleTest.finish(); } </script> -<script type="module"> +<script type="module" onerror="eventCount++"> // Module with a syntax error. some invalid js syntax; wasRun = true; diff --git a/dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html b/dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html index 5e7992823..cc4bf1257 100644 --- a/dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html +++ b/dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html @@ -4,22 +4,29 @@ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script> var wasRun = false; - var hadSyntaxError = false; + var errorCount = 0; + var syntaxErrorCount = 0; + var eventCount = 0; SimpleTest.waitForExplicitFinish(); window.onerror = handleError; function handleError(message, url, line, column, error) { - hadSyntaxError = error instanceof SyntaxError; + errorCount++; + if (error instanceof SyntaxError) { + syntaxErrorCount++; + } } function testError() { ok(!wasRun, 'Check script was not run'); - ok(hadSyntaxError, 'Check that a SyntaxError was thrown'); + ok(errorCount == 1, 'Check that an error was reported'); + ok(syntaxErrorCount == 1, 'Check that a syntax error was reported'); + ok(eventCount == 0, 'Check that no error event was fired'); SimpleTest.finish(); } </script> -<script type="module" async> +<script type="module" async onerror="eventCount++"> // Module with a syntax error. some invalid js syntax; wasRun = true; |