mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
LibJS: Make Interpreter::run() a void function
With one small exception, this is how we've been using this API already, and it makes sense: a Program is just a ScopeNode with any number of statements, which are executed one by one. There's no explicit return value at the end, only a completion value of the last value-producing statement, which we then access using VM::last_value() if needed (e.g. in the REPL).
This commit is contained in:
parent
ef3679f9c3
commit
dadf2e8251
|
@ -54,7 +54,7 @@ Interpreter::~Interpreter()
|
|||
{
|
||||
}
|
||||
|
||||
Value Interpreter::run(GlobalObject& global_object, const Program& program)
|
||||
void Interpreter::run(GlobalObject& global_object, const Program& program)
|
||||
{
|
||||
auto& vm = this->vm();
|
||||
VERIFY(!vm.exception());
|
||||
|
@ -71,9 +71,8 @@ Value Interpreter::run(GlobalObject& global_object, const Program& program)
|
|||
global_call_frame.is_strict_mode = program.is_strict_mode();
|
||||
vm.push_call_frame(global_call_frame, global_object);
|
||||
VERIFY(!vm.exception());
|
||||
auto result = program.execute(*this, global_object);
|
||||
program.execute(*this, global_object);
|
||||
vm.pop_call_frame();
|
||||
return result;
|
||||
}
|
||||
|
||||
GlobalObject& Interpreter::global_object()
|
||||
|
|
|
@ -61,7 +61,7 @@ public:
|
|||
|
||||
~Interpreter();
|
||||
|
||||
Value run(GlobalObject&, const Program&);
|
||||
void run(GlobalObject&, const Program&);
|
||||
|
||||
GlobalObject& global_object();
|
||||
const GlobalObject& global_object() const;
|
||||
|
|
|
@ -555,10 +555,11 @@ JS::Value Document::run_javascript(const StringView& source, const StringView& f
|
|||
return JS::js_undefined();
|
||||
}
|
||||
auto& interpreter = document().interpreter();
|
||||
auto result = interpreter.run(interpreter.global_object(), *program);
|
||||
if (interpreter.exception())
|
||||
interpreter.vm().clear_exception();
|
||||
return result;
|
||||
auto& vm = interpreter.vm();
|
||||
interpreter.run(interpreter.global_object(), *program);
|
||||
if (vm.exception())
|
||||
vm.clear_exception();
|
||||
return vm.last_value();
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-document-createelement
|
||||
|
|
Loading…
Reference in a new issue