From 66f0e2f590847b67112ccb7d78493d4ef8195fa3 Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 13 Oct 2026 10:15:21 -0700 Subject: [PATCH] Use createError in JSError and forward it in RuntimeDecorator (#58961) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58961 `JSError(rt, message)` still creates its value by looking up `globalThis.Error` and calling it, which predates `IRuntime::createError`. It now uses `rt.createError(...)` like the `JSError::createXError` factories, with the same try/catch fallback. The default `Runtime::createError` makes the same global call, so runtimes without a native implementation behave as before. On Hermes every `JSError` thrown from native code skips a global lookup and a JS call, and `message`, `stack` and `what()` come out the same. `RuntimeDecorator` and `WithRuntimeDecorator` didn't forward the `createError` family, so decorated runtimes (the thread-safe runtime, `TracingRuntime`) quietly fell back to the global constructor calls. They forward to `plain()` now, through `Around` for `WithRuntimeDecorator`, and they're public like in `jsi::Runtime`. One visible difference on Hermes, same as the other `createXError` APIs: if user code replaced or deleted `globalThis.Error`, `JSError(rt, message)` no longer calls the replacement and creates a real `Error` anyway. X-link: https://github.com/facebook/hermes/pull/2203 Test Plan: Two new tests in testlib.cpp. `JSErrorMessageTest` checks the value is an `Error` with the right message and a string stack, and that a counting `globalThis.Error` replacement gets called exactly as often as `rt.createError` calls it, so it holds for native and default implementations. `DecoratorCreateErrorTest` checks that all seven `createXError` calls, and `JSError`, reach the wrapped runtime once through both decorators, and that `Around` runs once. `JSErrorDoesNotInfinitelyRecurse` and `CreateJSErrorPropagatesOOMExceptionTest` run through decorators that use the default `Runtime::createError`. This keeps the missing-constructor fallback and OOM propagation covered, since both tests depend on changing `globalThis.Error`. `APITests` (ASan + Debug, macOS arm64, `HERMESVM_EXCEPTION_ON_OOM=ON`): 362/362 pass, including SynthTrace and all three OOM tests. Built with `-O1` and `HERMES_ENABLE_WERROR=ON`; the existing GoogleTest `uninitialized-const-pointer` warning is demoted for AppleClang 21. ```sh cmake --build cmake-build-asan-oom --target APITests -j 8 cmake-build-asan-oom/unittests/API/APITests ``` Before the OOM test adaptation, `CreateJSErrorPropagatesOOMExceptionTest` fails because it throws `JSError` instead of `JSOutOfMemoryError`. It passes with the decorator. The earlier checks with the `jsi.cpp` and `decorator.h` changes reverted also made the new JSI tests fail. Reviewed By: javache Differential Revision: D124178378 Pulled By: lavenzg --- .../ReactCommon/jsi/jsi/decorator.h | 51 +++++ .../react-native/ReactCommon/jsi/jsi/jsi.cpp | 4 +- .../ReactCommon/jsi/jsi/test/testlib.cpp | 179 +++++++++++++++++- .../api-snapshots/ReactAndroidDebugCxx.api | 14 ++ .../ReactAndroidFrameworksCxx.api | 14 ++ .../api-snapshots/ReactAndroidNewarchCxx.api | 14 ++ .../api-snapshots/ReactAndroidReleaseCxx.api | 14 ++ .../api-snapshots/ReactAppleDebugCxx.api | 14 ++ .../api-snapshots/ReactAppleFrameworksCxx.api | 14 ++ .../api-snapshots/ReactAppleNewarchCxx.api | 14 ++ .../api-snapshots/ReactAppleReleaseCxx.api | 14 ++ .../api-snapshots/ReactCommonDebugCxx.api | 14 ++ .../ReactCommonFrameworksCxx.api | 14 ++ .../api-snapshots/ReactCommonNewarchCxx.api | 14 ++ .../api-snapshots/ReactCommonReleaseCxx.api | 14 ++ 15 files changed, 391 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactCommon/jsi/jsi/decorator.h b/packages/react-native/ReactCommon/jsi/jsi/decorator.h index 26478a3ad345..081a97fddfb5 100644 --- a/packages/react-native/ReactCommon/jsi/jsi/decorator.h +++ b/packages/react-native/ReactCommon/jsi/jsi/decorator.h @@ -149,6 +149,28 @@ class RuntimeDecorator : public Base, private jsi::Instrumentation { return *this; } + Value createError(const String& msg) override { + return plain().createError(msg); + } + Value createEvalError(const String& msg) override { + return plain().createEvalError(msg); + } + Value createRangeError(const String& msg) override { + return plain().createRangeError(msg); + } + Value createReferenceError(const String& msg) override { + return plain().createReferenceError(msg); + } + Value createSyntaxError(const String& msg) override { + return plain().createSyntaxError(msg); + } + Value createTypeError(const String& msg) override { + return plain().createTypeError(msg); + } + Value createURIError(const String& msg) override { + return plain().createURIError(msg); + } + protected: // plain is generally going to be a reference to an object managed // by a derived class. We cache it here so this class can be @@ -706,6 +728,35 @@ class WithRuntimeDecorator : public RuntimeDecorator { return RD::isInspectable(); } + Value createError(const String& msg) override { + Around around{with_}; + return RD::createError(msg); + } + Value createEvalError(const String& msg) override { + Around around{with_}; + return RD::createEvalError(msg); + } + Value createRangeError(const String& msg) override { + Around around{with_}; + return RD::createRangeError(msg); + } + Value createReferenceError(const String& msg) override { + Around around{with_}; + return RD::createReferenceError(msg); + } + Value createSyntaxError(const String& msg) override { + Around around{with_}; + return RD::createSyntaxError(msg); + } + Value createTypeError(const String& msg) override { + Around around{with_}; + return RD::createTypeError(msg); + } + Value createURIError(const String& msg) override { + Around around{with_}; + return RD::createURIError(msg); + } + // The jsi:: prefix is necessary because MSVC compiler complains C2247: // Instrumentation is not accessible because RuntimeDecorator uses private // to inherit from Instrumentation. diff --git a/packages/react-native/ReactCommon/jsi/jsi/jsi.cpp b/packages/react-native/ReactCommon/jsi/jsi/jsi.cpp index 792b5bf5a0bf..d09cc485cdea 100644 --- a/packages/react-native/ReactCommon/jsi/jsi/jsi.cpp +++ b/packages/react-native/ReactCommon/jsi/jsi/jsi.cpp @@ -967,9 +967,7 @@ JSError::JSError(IRuntime& rt, Value&& value) { JSError::JSError(IRuntime& rt, std::string msg) : message_(std::move(msg)) { try { - setValue( - rt, - callGlobalFunction(rt, "Error", String::createFromUtf8(rt, message_))); + setValue(rt, rt.createError(String::createFromUtf8(rt, message_))); } catch (const JSIException& ex) { message_ = std::string(ex.what()) + " (while raising " + message_ + ")"; setValue(rt, String::createFromUtf8(rt, message_)); diff --git a/packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp b/packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp index 38e2fc328b1b..338d8459f890 100644 --- a/packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp +++ b/packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp @@ -1209,10 +1209,24 @@ TEST_P(JSITest, JSErrorsCanBeConstructedWithStack) { } TEST_P(JSITest, JSErrorDoesNotInfinitelyRecurse) { - Value globalError = rt.global().getProperty(rt, "Error"); - rt.global().setProperty(rt, "Error", Value::undefined()); + // JSError(rt, message) creates its value with createError. Use the default + // implementation, which calls the global Error constructor, so that removing + // it below makes creating the Error fail even if the runtime has a native + // createError. + class RD : public RuntimeDecorator { + public: + explicit RD(Runtime& rt) : RuntimeDecorator(rt) {} + + Value createError(const String& msg) override { + return Runtime::createError(msg); + } + }; + RD drt(rt); + + Value globalError = drt.global().getProperty(drt, "Error"); + drt.global().setProperty(drt, "Error", Value::undefined()); try { - rt.global().getPropertyAsFunction(rt, "NotAFunction"); + drt.global().getPropertyAsFunction(drt, "NotAFunction"); FAIL() << "expected exception"; } catch (const JSError& ex) { EXPECT_EQ( @@ -1235,14 +1249,14 @@ TEST_P(JSITest, JSErrorDoesNotInfinitelyRecurse) { "function (f) { try { f(); return 'undefined'; }" "catch (e) { return typeof e; } }") .call( - rt, + drt, Function::createFromHostFunction( - rt, PropNameID::forAscii(rt, "fails"), 0, fails)) - .getString(rt) - .utf8(rt), + drt, PropNameID::forAscii(drt, "fails"), 0, fails)) + .getString(drt) + .utf8(drt), "string"); - rt.global().setProperty(rt, "Error", globalError); + drt.global().setProperty(drt, "Error", globalError); } TEST_P(JSITest, JSErrorStackOverflowHandling) { @@ -1655,6 +1669,155 @@ TEST_P(JSITest, CreateErrorTest) { } } +TEST_P(JSITest, JSErrorMessageTest) { + // JSError(rt, message) creates a new Error instance. + { + JSError e(rt, "native error"); + EXPECT_EQ(e.getMessage(), "native error"); + Object obj = e.value().getObject(rt); + EXPECT_TRUE( + rt.instanceOf(obj, rt.global().getPropertyAsFunction(rt, "Error"))); + EXPECT_EQ( + obj.getProperty(rt, "message").getString(rt).utf8(rt), "native error"); + } + + // JSError(rt, message) creates its value with Runtime::createError, so a + // replaced global Error constructor is invoked exactly when createError + // invokes it (e.g. the default jsi::Runtime implementation does, runtimes + // with a native implementation do not). + eval( + "var OriginalError = Error;" + "var replacedErrorCalls = 0;" + "Error = function(message) {" + " ++replacedErrorCalls;" + " return new OriginalError(message);" + "};"); + auto replacedErrorCalls = [&] { + return rt.global().getProperty(rt, "replacedErrorCalls").getNumber(); + }; + + rt.createError(String::createFromAscii(rt, "probe")); + double callsPerCreateError = replacedErrorCalls(); + + JSError e(rt, "replaced"); + EXPECT_EQ(replacedErrorCalls(), 2 * callsPerCreateError); + EXPECT_EQ(e.getMessage(), "replaced"); + Object obj = e.value().getObject(rt); + EXPECT_TRUE(rt.instanceOf( + obj, rt.global().getPropertyAsFunction(rt, "OriginalError"))); + EXPECT_EQ(obj.getProperty(rt, "message").getString(rt).utf8(rt), "replaced"); +} + +TEST_P(JSITest, DecoratorCreateErrorTest) { + // Counts the createError* calls that reach it, and forwards them to the + // underlying runtime. + class CountingRD : public RuntimeDecorator { + public: + explicit CountingRD(Runtime& rt) : RuntimeDecorator(rt) {} + + Value createError(const String& msg) override { + ++count; + return RuntimeDecorator::createError(msg); + } + Value createEvalError(const String& msg) override { + ++count; + return RuntimeDecorator::createEvalError(msg); + } + Value createRangeError(const String& msg) override { + ++count; + return RuntimeDecorator::createRangeError(msg); + } + Value createReferenceError(const String& msg) override { + ++count; + return RuntimeDecorator::createReferenceError(msg); + } + Value createSyntaxError(const String& msg) override { + ++count; + return RuntimeDecorator::createSyntaxError(msg); + } + Value createTypeError(const String& msg) override { + ++count; + return RuntimeDecorator::createTypeError(msg); + } + Value createURIError(const String& msg) override { + ++count; + return RuntimeDecorator::createURIError(msg); + } + + int count = 0; + }; + + class RD : public RuntimeDecorator { + public: + explicit RD(Runtime& rt) : RuntimeDecorator(rt) {} + }; + + struct Count { + void before() { + ++count; + } + + int count = 0; + }; + + class CountRuntime : public WithRuntimeDecorator { + public: + explicit CountRuntime(Runtime& rt) + : WithRuntimeDecorator(rt, count_) {} + + Count count_; + }; + + CountingRD counting(rt); + RD rd(counting); + CountRuntime crt(counting); + + struct { + Value (Runtime::*create)(const String&); + const char* ctor; + } cases[] = { + {&Runtime::createError, "Error"}, + {&Runtime::createEvalError, "EvalError"}, + {&Runtime::createRangeError, "RangeError"}, + {&Runtime::createReferenceError, "ReferenceError"}, + {&Runtime::createSyntaxError, "SyntaxError"}, + {&Runtime::createTypeError, "TypeError"}, + {&Runtime::createURIError, "URIError"}, + }; + + // Both decorators must forward createError* to the decorated runtime rather + // than fall back to the default implementation calling the global ctor. + for (const auto& c : cases) { + for (Runtime* drt : + {static_cast(&rd), static_cast(&crt)}) { + String msg = String::createFromAscii(*drt, "decorated"); + int countBefore = counting.count; + int aroundBefore = crt.count_.count; + Value error = (drt->*c.create)(msg); + EXPECT_EQ(counting.count, countBefore + 1) << c.ctor; + if (drt == &crt) { + EXPECT_EQ(crt.count_.count, aroundBefore + 1) << c.ctor; + } + + Object obj = error.getObject(*drt); + EXPECT_TRUE(drt->instanceOf( + obj, drt->global().getPropertyAsFunction(*drt, c.ctor))) + << c.ctor; + EXPECT_EQ( + obj.getProperty(*drt, "message").getString(*drt).utf8(*drt), + "decorated") + << c.ctor; + } + } + + // JSError(rt, message) on a decorated runtime reaches the decorated + // runtime's createError. + int countBefore = counting.count; + JSError e(rd, "decorated JSError"); + EXPECT_EQ(counting.count, countBefore + 1); + EXPECT_EQ(e.getMessage(), "decorated JSError"); +} + TEST_P(JSITest, MicrotasksTest) { try { rt.global().setProperty(rt, "globalValue", String::createFromAscii(rt, "")); diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index acd394275a1e..950da1b1252d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -6191,6 +6191,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -6297,6 +6304,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index b79bfbfc7895..a1f38046aa9d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -10546,6 +10546,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -10652,6 +10659,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index 92b53937a86d..b8f40a7c37c3 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -6040,6 +6040,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -6146,6 +6153,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index 92b53937a86d..b8f40a7c37c3 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -6040,6 +6040,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -6146,6 +6153,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index adcf6293970e..2c45459e9783 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -8002,6 +8002,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -8108,6 +8115,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index 2cb413c7e92c..c9948285d780 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -12389,6 +12389,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -12495,6 +12502,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index 273b4a58578d..a9a30a9cc83d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -7853,6 +7853,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -7959,6 +7966,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index 3be7fbb556a1..377d99276dc5 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -7861,6 +7861,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -7967,6 +7974,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index 15f0bf744c0d..0315dac92bdf 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -3451,6 +3451,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -3557,6 +3564,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index 16c6c2b8b8ee..476546b20506 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -7706,6 +7706,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -7812,6 +7819,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index e23d29af220d..3494c75619c5 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -3444,6 +3444,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -3550,6 +3557,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index e23d29af220d..3494c75619c5 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -3444,6 +3444,13 @@ class facebook::jsi::RuntimeDecorator : public facebook::jsi::Runtime { public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override; @@ -3550,6 +3557,13 @@ class facebook::jsi::WithRuntimeDecorator : public facebook::jsi::RuntimeDecorat public virtual facebook::jsi::ICast* castInterface(const facebook::jsi::UUID& interfaceUUID) override; public virtual facebook::jsi::Instrumentation& instrumentation() override; public virtual facebook::jsi::Object global() override; + public virtual facebook::jsi::Value createError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createEvalError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createRangeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createReferenceError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createSyntaxError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createTypeError(const facebook::jsi::String& msg) override; + public virtual facebook::jsi::Value createURIError(const facebook::jsi::String& msg) override; public virtual facebook::jsi::Value evaluateJavaScript(const std::shared_ptr& buffer, const std::string& sourceURL) override; public virtual facebook::jsi::Value evaluatePreparedJavaScript(const std::shared_ptr& js) override; public virtual std::shared_ptr prepareJavaScript(const std::shared_ptr& buffer, std::string sourceURL) override;