diff --git a/packages/react-native/ReactCommon/jsi/jsi/decorator.h b/packages/react-native/ReactCommon/jsi/jsi/decorator.h index 26478a3ad34..081a97fddfb 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 792b5bf5a0b..d09cc485cde 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 38e2fc328b1..338d8459f89 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 777b8427b4b..9097b1ad18b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -6264,6 +6264,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; @@ -6370,6 +6377,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 07a514f8721..b875d9adfef 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -10880,6 +10880,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; @@ -10986,6 +10993,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 e61666350cc..02545694a54 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -6113,6 +6113,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; @@ -6219,6 +6226,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 e61666350cc..02545694a54 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -6113,6 +6113,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; @@ -6219,6 +6226,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 4a7b602e202..219e94a1d8a 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -8108,6 +8108,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; @@ -8214,6 +8221,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 cb120cc274d..3d886cef76d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -12739,6 +12739,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; @@ -12845,6 +12852,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 8a11f3569d7..7ec8be7125d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -7959,6 +7959,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; @@ -8065,6 +8072,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 aa1ff6a9eb9..0188a38d409 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -7967,6 +7967,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; @@ -8073,6 +8080,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 217e69f4606..e21d1400e27 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -3511,6 +3511,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; @@ -3617,6 +3624,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 cd69da28289..3fbb7161562 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -8034,6 +8034,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; @@ -8140,6 +8147,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 05433e06a97..62dab27da09 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -3504,6 +3504,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; @@ -3610,6 +3617,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 05433e06a97..62dab27da09 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -3504,6 +3504,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; @@ -3610,6 +3617,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;