mirror of
https://github.com/RGBCube/serenity
synced 2025-05-16 19:45:07 +00:00
LibJS: Allow function calls with missing arguments
We were interpreting "undefined" as a variable lookup failure in some cases and throwing a ReferenceError exception instead of treating it as the valid value "undefined". This patch wraps the result of variable lookup in Optional<>, which allows us to only throw ReferenceError when lookup actually fails.
This commit is contained in:
parent
04ced9e24a
commit
c60dc84a33
7 changed files with 45 additions and 10 deletions
|
@ -142,7 +142,7 @@ void Interpreter::set_variable(const FlyString& name, Value value, bool first_as
|
|||
global_object().put(move(name), move(value));
|
||||
}
|
||||
|
||||
Value Interpreter::get_variable(const FlyString& name)
|
||||
Optional<Value> Interpreter::get_variable(const FlyString& name)
|
||||
{
|
||||
for (ssize_t i = m_scope_stack.size() - 1; i >= 0; --i) {
|
||||
auto& scope = m_scope_stack.at(i);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue