浏览代码

LibJS/Bytecode: Make for..in iterate property names as string

Makes 107 new tests pass in test262. :^)
Andreas Kling 2 年之前
父节点
当前提交
0d4c7fa392
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      Userland/Libraries/LibJS/Bytecode/Op.cpp

+ 1 - 1
Userland/Libraries/LibJS/Bytecode/Op.cpp

@@ -981,7 +981,7 @@ ThrowCompletionOr<void> GetObjectPropertyIterator::execute_impl(Bytecode::Interp
                     result_object->define_direct_property(vm.names.done, JS::Value(false), default_attributes);
 
                     if (key.is_number())
-                        result_object->define_direct_property(vm.names.value, JS::Value(key.as_number()), default_attributes);
+                        result_object->define_direct_property(vm.names.value, PrimitiveString::create(vm, TRY_OR_THROW_OOM(vm, String::number(key.as_number()))), default_attributes);
                     else if (key.is_string())
                         result_object->define_direct_property(vm.names.value, PrimitiveString::create(vm, key.as_string()), default_attributes);
                     else