#include "CallFrame.h"
#include "CodeProfiling.h"
#include "Debugger.h"
+#include "Exception.h"
#include "Interpreter.h"
#include "JSGlobalObject.h"
#include "JSLock.h"
{
JSLockHolder lock(vm);
RELEASE_ASSERT(vm.atomicStringTable() == wtfThreadData().atomicStringTable());
- RefPtr<ProgramNode> programNode = parse<ProgramNode>(&vm, source, 0, Identifier(), JSParseNormal, JSParseProgramCode, error);
- return programNode;
+ return !!parse<ProgramNode>(
+ &vm, source, 0, Identifier(), JSParserBuiltinMode::NotBuiltin,
+ JSParserStrictMode::NotStrict, JSParserCodeType::Program, error);
}
-JSValue evaluate(ExecState* exec, const SourceCode& source, JSValue thisValue, JSValue* returnedException)
+JSValue evaluate(ExecState* exec, const SourceCode& source, JSValue thisValue, NakedPtr<Exception>& returnedException)
{
JSLockHolder lock(exec);
RELEASE_ASSERT(exec->vm().atomicStringTable() == wtfThreadData().atomicStringTable());
ProgramExecutable* program = ProgramExecutable::create(exec, source);
if (!program) {
- if (returnedException)
- *returnedException = exec->vm().exception();
-
+ returnedException = exec->vm().exception();
exec->vm().clearException();
return jsUndefined();
}
JSValue result = exec->interpreter()->execute(program, exec, thisObj);
if (exec->hadException()) {
- if (returnedException)
- *returnedException = exec->exception();
-
+ returnedException = exec->exception();
exec->clearException();
return jsUndefined();
}