diff options
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/jsc.cpp')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/jsc.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/jsc.cpp b/src/3rdparty/webkit/JavaScriptCore/jsc.cpp index 21a8c18a97..20d6694ab5 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jsc.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jsc.cpp @@ -52,7 +52,7 @@ #include <signal.h> #endif -#if COMPILER(MSVC) && !PLATFORM(WIN_CE) +#if COMPILER(MSVC) && !PLATFORM(WINCE) #include <crtdbg.h> #include <windows.h> #include <mmsystem.h> @@ -75,6 +75,7 @@ static JSValue JSC_HOST_CALL functionGC(ExecState*, JSObject*, JSValue, const Ar static JSValue JSC_HOST_CALL functionVersion(ExecState*, JSObject*, JSValue, const ArgList&); static JSValue JSC_HOST_CALL functionRun(ExecState*, JSObject*, JSValue, const ArgList&); static JSValue JSC_HOST_CALL functionLoad(ExecState*, JSObject*, JSValue, const ArgList&); +static JSValue JSC_HOST_CALL functionCheckSyntax(ExecState*, JSObject*, JSValue, const ArgList&); static JSValue JSC_HOST_CALL functionReadline(ExecState*, JSObject*, JSValue, const ArgList&); static NO_RETURN JSValue JSC_HOST_CALL functionQuit(ExecState*, JSObject*, JSValue, const ArgList&); @@ -184,6 +185,7 @@ GlobalObject::GlobalObject(const Vector<UString>& arguments) putDirectFunction(globalExec(), new (globalExec()) NativeFunctionWrapper(globalExec(), prototypeFunctionStructure(), 1, Identifier(globalExec(), "version"), functionVersion)); putDirectFunction(globalExec(), new (globalExec()) NativeFunctionWrapper(globalExec(), prototypeFunctionStructure(), 1, Identifier(globalExec(), "run"), functionRun)); putDirectFunction(globalExec(), new (globalExec()) NativeFunctionWrapper(globalExec(), prototypeFunctionStructure(), 1, Identifier(globalExec(), "load"), functionLoad)); + putDirectFunction(globalExec(), new (globalExec()) NativeFunctionWrapper(globalExec(), prototypeFunctionStructure(), 1, Identifier(globalExec(), "checkSyntax"), functionCheckSyntax)); putDirectFunction(globalExec(), new (globalExec()) NativeFunctionWrapper(globalExec(), prototypeFunctionStructure(), 0, Identifier(globalExec(), "readline"), functionReadline)); #if ENABLE(SAMPLING_FLAGS) @@ -264,6 +266,22 @@ JSValue JSC_HOST_CALL functionLoad(ExecState* exec, JSObject* o, JSValue v, cons return result.value(); } +JSValue JSC_HOST_CALL functionCheckSyntax(ExecState* exec, JSObject* o, JSValue v, const ArgList& args) +{ + UNUSED_PARAM(o); + UNUSED_PARAM(v); + UString fileName = args.at(0).toString(exec); + Vector<char> script; + if (!fillBufferWithContentsOfFile(fileName, script)) + return throwError(exec, GeneralError, "Could not open file."); + + JSGlobalObject* globalObject = exec->lexicalGlobalObject(); + Completion result = checkSyntax(globalObject->globalExec(), makeSource(script.data(), fileName)); + if (result.complType() == Throw) + exec->setException(result.value()); + return result.value(); +} + #if ENABLE(SAMPLING_FLAGS) JSValue JSC_HOST_CALL functionSetSamplingFlags(ExecState* exec, JSObject*, JSValue, const ArgList& args) { @@ -332,7 +350,7 @@ int main(int argc, char** argv) _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE); #endif -#if COMPILER(MSVC) && !PLATFORM(WIN_CE) +#if COMPILER(MSVC) && !PLATFORM(WINCE) timeBeginPeriod(1); #endif |