summaryrefslogtreecommitdiffstats
path: root/dom/base
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-07-06 20:31:14 +0000
committerMoonchild <moonchild@palemoon.org>2020-07-06 20:31:14 +0000
commitc053de708817a3b7c90edcd53fe3742007b8a41e (patch)
treed616be09d75333065416cb35432eac7b821c4aa9 /dom/base
parentfd602fbffbaf8e7d7e58c9ffe9b0b188cb7c65de (diff)
parent2dff89b658d6ab2592865c226f3f1078f418151d (diff)
downloadUXP-c053de708817a3b7c90edcd53fe3742007b8a41e.tar
UXP-c053de708817a3b7c90edcd53fe3742007b8a41e.tar.gz
UXP-c053de708817a3b7c90edcd53fe3742007b8a41e.tar.lz
UXP-c053de708817a3b7c90edcd53fe3742007b8a41e.tar.xz
UXP-c053de708817a3b7c90edcd53fe3742007b8a41e.zip
Merge branch 'es-modules-work'
Diffstat (limited to 'dom/base')
-rw-r--r--dom/base/nsJSUtils.cpp13
-rw-r--r--dom/base/nsJSUtils.h8
-rw-r--r--dom/base/test/jsmodules/test_syntaxError.html15
-rw-r--r--dom/base/test/jsmodules/test_syntaxErrorAsync.html15
-rw-r--r--dom/base/test/jsmodules/test_syntaxErrorInline.html15
-rw-r--r--dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html15
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;