summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/bindings/c/c_instance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/bindings/c/c_instance.cpp')
-rw-r--r--JavaScriptCore/bindings/c/c_instance.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/JavaScriptCore/bindings/c/c_instance.cpp b/JavaScriptCore/bindings/c/c_instance.cpp
index 3d04054..b453bd0 100644
--- a/JavaScriptCore/bindings/c/c_instance.cpp
+++ b/JavaScriptCore/bindings/c/c_instance.cpp
@@ -97,6 +97,7 @@ JSValue* CInstance::invokeMethod(ExecState* exec, const MethodList& methodList,
convertValueToNPVariant(exec, args.at(i), &cArgs[i]);
// Invoke the 'C' method.
+ SetGlobalException(0);
NPVariant resultVariant;
VOID_TO_NPVARIANT(resultVariant);
@@ -110,6 +111,7 @@ JSValue* CInstance::invokeMethod(ExecState* exec, const MethodList& methodList,
JSValue* resultValue = convertNPVariantToValue(exec, &resultVariant, _rootObject.get());
_NPN_ReleaseVariantValue(&resultVariant);
+ MoveGlobalExceptionToExecState(exec);
return resultValue;
}
@@ -127,6 +129,7 @@ JSValue* CInstance::invokeDefaultMethod(ExecState* exec, const List& args)
convertValueToNPVariant(exec, args.at(i), &cArgs[i]);
// Invoke the 'C' method.
+ SetGlobalException(0);
NPVariant resultVariant;
VOID_TO_NPVARIANT(resultVariant);
{
@@ -139,6 +142,7 @@ JSValue* CInstance::invokeDefaultMethod(ExecState* exec, const List& args)
JSValue* resultValue = convertNPVariantToValue(exec, &resultVariant, _rootObject.get());
_NPN_ReleaseVariantValue(&resultVariant);
+ MoveGlobalExceptionToExecState(exec);
return resultValue;
}