From 41386e9cb918eed93b3f13648cbef387e371e451 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Wed, 20 May 2015 09:56:07 +0000 Subject: webkitgtk-2.4.9 --- Source/JavaScriptCore/API/JSScriptRef.cpp | 45 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 24 deletions(-) (limited to 'Source/JavaScriptCore/API/JSScriptRef.cpp') diff --git a/Source/JavaScriptCore/API/JSScriptRef.cpp b/Source/JavaScriptCore/API/JSScriptRef.cpp index 3b7b76bf3..9277001d2 100644 --- a/Source/JavaScriptCore/API/JSScriptRef.cpp +++ b/Source/JavaScriptCore/API/JSScriptRef.cpp @@ -26,13 +26,13 @@ #include "config.h" #include "APICast.h" +#include "APIShims.h" #include "Completion.h" -#include "Exception.h" #include "JSBasePrivate.h" #include "VM.h" #include "JSScriptRefPrivate.h" #include "OpaqueJSString.h" -#include "JSCInlines.h" +#include "Operations.h" #include "Parser.h" #include "SourceCode.h" #include "SourceProvider.h" @@ -41,9 +41,9 @@ using namespace JSC; struct OpaqueJSScript : public SourceProvider { public: - static WTF::RefPtr create(VM* vm, const String& url, int startingLineNumber, const String& source) + static WTF::PassRefPtr create(VM* vm, const String& url, int startingLineNumber, const String& source) { - return WTF::adoptRef(*new OpaqueJSScript(vm, url, startingLineNumber, source)); + return WTF::adoptRef(new OpaqueJSScript(vm, url, startingLineNumber, source)); } virtual const String& source() const override @@ -69,10 +69,7 @@ private: static bool parseScript(VM* vm, const SourceCode& source, ParserError& error) { - return !!JSC::parse( - vm, source, Identifier(), JSParserBuiltinMode::NotBuiltin, - JSParserStrictMode::NotStrict, SourceParseMode::ProgramMode, - error); + return JSC::parse(vm, source, 0, Identifier(), JSParseNormal, JSParseProgramCode, error); } extern "C" { @@ -80,7 +77,7 @@ extern "C" { JSScriptRef JSScriptCreateReferencingImmortalASCIIText(JSContextGroupRef contextGroup, JSStringRef url, int startingLineNumber, const char* source, size_t length, JSStringRef* errorMessage, int* errorLine) { VM* vm = toJS(contextGroup); - JSLockHolder locker(vm); + APIEntryShim entryShim(vm); for (size_t i = 0; i < length; i++) { if (!isASCII(source[i])) return 0; @@ -88,15 +85,15 @@ JSScriptRef JSScriptCreateReferencingImmortalASCIIText(JSContextGroupRef context startingLineNumber = std::max(1, startingLineNumber); - RefPtr result = OpaqueJSScript::create(vm, url ? url->string() : String(), startingLineNumber, String(StringImpl::createFromLiteral(source, length))); + RefPtr result = OpaqueJSScript::create(vm, url->string(), startingLineNumber, String(StringImpl::createFromLiteral(source, length))); ParserError error; if (!parseScript(vm, SourceCode(result), error)) { if (errorMessage) - *errorMessage = OpaqueJSString::create(error.message()).leakRef(); + *errorMessage = OpaqueJSString::create(error.m_message).leakRef(); if (errorLine) - *errorLine = error.line(); - return nullptr; + *errorLine = error.m_line; + return 0; } return result.release().leakRef(); @@ -105,19 +102,19 @@ JSScriptRef JSScriptCreateReferencingImmortalASCIIText(JSContextGroupRef context JSScriptRef JSScriptCreateFromString(JSContextGroupRef contextGroup, JSStringRef url, int startingLineNumber, JSStringRef source, JSStringRef* errorMessage, int* errorLine) { VM* vm = toJS(contextGroup); - JSLockHolder locker(vm); + APIEntryShim entryShim(vm); startingLineNumber = std::max(1, startingLineNumber); - RefPtr result = OpaqueJSScript::create(vm, url ? url->string() : String(), startingLineNumber, source->string()); + RefPtr result = OpaqueJSScript::create(vm, url->string(), startingLineNumber, source->string()); ParserError error; if (!parseScript(vm, SourceCode(result), error)) { if (errorMessage) - *errorMessage = OpaqueJSString::create(error.message()).leakRef(); + *errorMessage = OpaqueJSString::create(error.m_message).leakRef(); if (errorLine) - *errorLine = error.line(); - return nullptr; + *errorLine = error.m_line; + return 0; } return result.release().leakRef(); @@ -125,30 +122,30 @@ JSScriptRef JSScriptCreateFromString(JSContextGroupRef contextGroup, JSStringRef void JSScriptRetain(JSScriptRef script) { - JSLockHolder locker(script->vm()); + APIEntryShim entryShim(script->vm()); script->ref(); } void JSScriptRelease(JSScriptRef script) { - JSLockHolder locker(script->vm()); + APIEntryShim entryShim(script->vm()); script->deref(); } JSValueRef JSScriptEvaluate(JSContextRef context, JSScriptRef script, JSValueRef thisValueRef, JSValueRef* exception) { ExecState* exec = toJS(context); - JSLockHolder locker(exec); + APIEntryShim entryShim(exec); if (script->vm() != &exec->vm()) { RELEASE_ASSERT_NOT_REACHED(); return 0; } - NakedPtr internalException; + JSValue internalException; JSValue thisValue = thisValueRef ? toJS(exec, thisValueRef) : jsUndefined(); - JSValue result = evaluate(exec, SourceCode(script), thisValue, internalException); + JSValue result = evaluate(exec, SourceCode(script), thisValue, &internalException); if (internalException) { if (exception) - *exception = toRef(exec, internalException->value()); + *exception = toRef(exec, internalException); return 0; } ASSERT(result); -- cgit v1.2.1