mirror of
https://github.com/RGBCube/serenity
synced 2025-05-19 17:35:06 +00:00
LibJS: Throw on assignment of an const variable
Was stubbed out as an assert, should be handled with a runtime exception.
This commit is contained in:
parent
8e87d340c3
commit
0d41e542b7
2 changed files with 29 additions and 2 deletions
|
@ -145,8 +145,10 @@ void Interpreter::set_variable(const FlyString& name, Value value, bool first_as
|
|||
|
||||
auto possible_match = scope.variables.get(name);
|
||||
if (possible_match.has_value()) {
|
||||
if (!first_assignment && possible_match.value().declaration_kind == DeclarationKind::Const)
|
||||
ASSERT_NOT_REACHED();
|
||||
if (!first_assignment && possible_match.value().declaration_kind == DeclarationKind::Const) {
|
||||
throw_exception<TypeError>("Assignment to constant variable");
|
||||
return;
|
||||
}
|
||||
|
||||
scope.variables.set(move(name), { move(value), possible_match.value().declaration_kind });
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue