Jelajahi Sumber

LibJS: Don't allow the redeclaration of a `var` variable using let/const

Previously, we were allowing the redeclaration of a variable with `let`
or `const` if it was declared initially using `var`, we should not
tolerate any form of variable redeclaration using let/const.
0xtechnobabble 5 tahun lalu
induk
melakukan
83ea7bb9e7
1 mengubah file dengan 1 tambahan dan 1 penghapusan
  1. 1 1
      Libraries/LibJS/Interpreter.cpp

+ 1 - 1
Libraries/LibJS/Interpreter.cpp

@@ -96,7 +96,7 @@ void Interpreter::declare_variable(String name, DeclarationType declaration_type
         break;
     case DeclarationType::Let:
     case DeclarationType::Const:
-        if (m_scope_stack.last().variables.get(name).has_value() && m_scope_stack.last().variables.get(name).value().declaration_type != DeclarationType::Var)
+        if (m_scope_stack.last().variables.get(name).has_value())
             ASSERT_NOT_REACHED();
 
         m_scope_stack.last().variables.set(move(name), { js_undefined(), declaration_type });