From 3f25d0c8e4d9296f0d45c85c251eab71f076937b Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 3 Jul 2020 13:56:49 +0000 Subject: Issue #618 - Align module instantiation/errors with the updated spec. Store and re-throw module instantiation and evaluation errors. Ref: BZ 1374239, 1394492 --- js/src/jsapi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/src/jsapi.cpp') diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index d75a3c33a..53ea4ebc6 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -4709,7 +4709,7 @@ JS::ModuleDeclarationInstantiation(JSContext* cx, JS::HandleObject moduleArg) AssertHeapIsIdle(cx); CHECK_REQUEST(cx); assertSameCompartment(cx, moduleArg); - return ModuleObject::DeclarationInstantiation(cx, moduleArg.as()); + return ModuleObject::Instantiate(cx, moduleArg.as()); } JS_PUBLIC_API(bool) @@ -4718,7 +4718,7 @@ JS::ModuleEvaluation(JSContext* cx, JS::HandleObject moduleArg) AssertHeapIsIdle(cx); CHECK_REQUEST(cx); assertSameCompartment(cx, moduleArg); - return ModuleObject::Evaluation(cx, moduleArg.as()); + return ModuleObject::Evaluate(cx, moduleArg.as()); } JS_PUBLIC_API(JSObject*) -- cgit v1.2.3 From 7bf3e4c46475a7aa936d702eb38d65d9126008f2 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 3 Jul 2020 14:15:55 +0000 Subject: Issue #618 - Add APIs to query module record errors Ref: BZ 1388728 --- js/src/jsapi.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'js/src/jsapi.cpp') diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 53ea4ebc6..f8c34885b 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -4739,6 +4739,20 @@ JS::GetModuleScript(JSContext* cx, JS::HandleObject moduleArg) return moduleArg->as().script(); } +JS_PUBLIC_API(bool) +JS::IsModuleErrored(JSObject* moduleArg) +{ + AssertHeapIsIdle(); + return moduleArg->as().status() == MODULE_STATUS_ERRORED; +} + +JS_PUBLIC_API(JS::Value) +JS::GetModuleError(JSObject* moduleArg) +{ + AssertHeapIsIdle(); + return moduleArg->as().error(); +} + JS_PUBLIC_API(JSObject*) JS_New(JSContext* cx, HandleObject ctor, const JS::HandleValueArray& inputArgs) { -- cgit v1.2.3 From ef8d18da70c2c2efedc5e4db1dca0ece30ac5d14 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 3 Jul 2020 14:21:27 +0000 Subject: Issue #618 - Match JSAPI names with the changes in 9ca74147225eed305e28c7887f9b2251aeeb0f36 Ref: BZ 1388728 --- js/src/jsapi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/src/jsapi.cpp') diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index f8c34885b..9c24f1676 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -4704,7 +4704,7 @@ JS::GetModuleHostDefinedField(JSObject* module) } JS_PUBLIC_API(bool) -JS::ModuleDeclarationInstantiation(JSContext* cx, JS::HandleObject moduleArg) +JS::ModuleInstantiate(JSContext* cx, JS::HandleObject moduleArg) { AssertHeapIsIdle(cx); CHECK_REQUEST(cx); @@ -4713,7 +4713,7 @@ JS::ModuleDeclarationInstantiation(JSContext* cx, JS::HandleObject moduleArg) } JS_PUBLIC_API(bool) -JS::ModuleEvaluation(JSContext* cx, JS::HandleObject moduleArg) +JS::ModuleEvaluate(JSContext* cx, JS::HandleObject moduleArg) { AssertHeapIsIdle(cx); CHECK_REQUEST(cx); -- cgit v1.2.3 From 765c90318f192ba18848095133b0531c3162678d Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 3 Jul 2020 15:59:00 +0000 Subject: Issue #618 - Fix JSAPI additions to pass the JS context. --- js/src/jsapi.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'js/src/jsapi.cpp') diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 9c24f1676..cb0851f80 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -4740,16 +4740,18 @@ JS::GetModuleScript(JSContext* cx, JS::HandleObject moduleArg) } JS_PUBLIC_API(bool) -JS::IsModuleErrored(JSObject* moduleArg) +JS::IsModuleErrored(JSContext* cx, JSObject* moduleArg) { - AssertHeapIsIdle(); + AssertHeapIsIdle(cx); + CHECK_REQUEST(cx); return moduleArg->as().status() == MODULE_STATUS_ERRORED; } JS_PUBLIC_API(JS::Value) -JS::GetModuleError(JSObject* moduleArg) +JS::GetModuleError(JSContext* cx, JSObject* moduleArg) { - AssertHeapIsIdle(); + AssertHeapIsIdle(cx); + CHECK_REQUEST(cx); return moduleArg->as().error(); } -- cgit v1.2.3 From 40aad1a2209607b973170f4fb64548e5d8103402 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 4 Jul 2020 12:59:38 +0000 Subject: Issue #618 - Remove context and heap-idle check For checking if a module is in an error state and what the error is, it shouldn't matter if we are currently GC-ing or not. So we don't need to check for it, which removes the requirement to pass in the JS context (needed for AssertHeapIsIdle's runtime check); this unblocks progress where otherwise we'd have to figure out what the context is at the module level just to satisfy this check. --- js/src/jsapi.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'js/src/jsapi.cpp') diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index cb0851f80..cf5880e03 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -4740,18 +4740,14 @@ JS::GetModuleScript(JSContext* cx, JS::HandleObject moduleArg) } JS_PUBLIC_API(bool) -JS::IsModuleErrored(JSContext* cx, JSObject* moduleArg) +JS::IsModuleErrored(JSObject* moduleArg) { - AssertHeapIsIdle(cx); - CHECK_REQUEST(cx); return moduleArg->as().status() == MODULE_STATUS_ERRORED; } JS_PUBLIC_API(JS::Value) -JS::GetModuleError(JSContext* cx, JSObject* moduleArg) +JS::GetModuleError(JSObject* moduleArg) { - AssertHeapIsIdle(cx); - CHECK_REQUEST(cx); return moduleArg->as().error(); } -- cgit v1.2.3