diff --git a/Execution/Interpreter.Async.cs b/Execution/Interpreter.Async.cs index d95d4fe2..d8fc7523 100644 --- a/Execution/Interpreter.Async.cs +++ b/Execution/Interpreter.Async.cs @@ -383,7 +383,9 @@ private async Task ExecuteForInAsync(Stmt.ForIn forIn) IEnumerable keys = obj switch { - SharpTSObject o => o.Fields.Keys, + // Own enumerable keys only, hiding boxed-primitive internal slots and + // honoring enumerability — consistent with Object.keys (#475). + SharpTSObject o => o.OwnEnumerableKeys(), SharpTSInstance inst => inst.GetFieldNames(), // for...in skips holes per ECMA-262. SharpTSArray arr => Enumerable.Range(0, arr.Length).Where(arr.HasIndex).Select(i => i.ToString()), diff --git a/Execution/Interpreter.Statements.cs b/Execution/Interpreter.Statements.cs index 207d861c..8a2be76f 100644 --- a/Execution/Interpreter.Statements.cs +++ b/Execution/Interpreter.Statements.cs @@ -741,7 +741,9 @@ private ExecutionResult ExecuteForIn(Stmt.ForIn forIn) IEnumerable keys = obj switch { - SharpTSObject o => o.Fields.Keys, + // Own enumerable keys only, hiding boxed-primitive internal slots and + // honoring enumerability — consistent with Object.keys (#475). + SharpTSObject o => o.OwnEnumerableKeys(), SharpTSInstance i => i.GetFieldNames(), // for...in skips holes per ECMA-262 (only own enumerable index properties // that actually exist — holes don't). diff --git a/Runtime/BuiltIns/BuiltInConstructorFactory.cs b/Runtime/BuiltIns/BuiltInConstructorFactory.cs index cd5d5158..04e522f9 100644 --- a/Runtime/BuiltIns/BuiltInConstructorFactory.cs +++ b/Runtime/BuiltIns/BuiltInConstructorFactory.cs @@ -384,7 +384,11 @@ private static SharpTSObject CreateBoxedString(IReadOnlyList args) }; for (int i = 0; i < value.Length; i++) dict[i.ToString()] = value[i].ToString(); - return new SharpTSObject(dict); + var wrapper = new SharpTSObject(dict); + // ECMA-262 §22.1.4.1: a String exotic's `length` is non-enumerable, so it + // must not surface in Object.keys/for-in (only the indexed chars do) (#475). + wrapper.MarkNonEnumerable("length"); + return wrapper; } /// diff --git a/Runtime/BuiltIns/ObjectBuiltIns.cs b/Runtime/BuiltIns/ObjectBuiltIns.cs index b4cfe332..c71edc0d 100644 --- a/Runtime/BuiltIns/ObjectBuiltIns.cs +++ b/Runtime/BuiltIns/ObjectBuiltIns.cs @@ -45,7 +45,7 @@ private static RuntimeValue KeysV2(Interpreter _, RuntimeValue receiver, ReadOnl var arg = args[0].ToObject(); if (arg is SharpTSObject obj) { - var keys = obj.Fields.Keys.Select(k => (object?)k).ToList(); + var keys = obj.OwnEnumerableKeys().Select(k => (object?)k).ToList(); return RuntimeValue.FromObject(new SharpTSArray(keys)); } if (arg is SharpTSArray arr) @@ -100,7 +100,7 @@ private static RuntimeValue ValuesV2(Interpreter _, RuntimeValue receiver, ReadO var arg = args[0].ToObject(); if (arg is SharpTSObject obj) { - var values = obj.Fields.Values.ToList(); + var values = obj.OwnEnumerableKeys().Select(k => obj.Fields[k]).ToList(); return RuntimeValue.FromObject(new SharpTSArray(values)); } if (arg is SharpTSArray arr) @@ -142,8 +142,8 @@ private static RuntimeValue EntriesV2(Interpreter _, RuntimeValue receiver, Read var arg = args[0].ToObject(); if (arg is SharpTSObject obj) { - var entries = obj.Fields.Select(kv => - (object?)new SharpTSArray([(object?)kv.Key, kv.Value])).ToList(); + var entries = obj.OwnEnumerableKeys().Select(k => + (object?)new SharpTSArray([(object?)k, obj.Fields[k]])).ToList(); return RuntimeValue.FromObject(new SharpTSArray(entries)); } if (arg is SharpTSArray arr) @@ -524,6 +524,8 @@ private static RuntimeValue IsSealedV2(Interpreter _, RuntimeValue receiver, Rea // (undefined → "undefined", null → "null", -0 → "0", booleans lowercase). var propertyKey = PropertyKeyConverter.ToPropertyKeyString(args[1]); + PreserveOmittedAttributes(target, propertyKey, descriptor, descriptorArg, interpreter); + bool success; switch (target) { @@ -1561,6 +1563,39 @@ private static void ApplyBooleanAttributes(SharpTSPropertyDescriptor descriptor, if (c is not (null or SharpTSUndefined)) descriptor.Configurable = Compilation.RuntimeTypes.IsTruthy(c); } + /// + /// ECMA-262 §10.1.6.3 ValidateAndApplyPropertyDescriptor: when redefining an + /// EXISTING own property, attributes the descriptor omits are preserved from + /// the current property rather than reset to false ( + /// defaults absent booleans to false, and only + /// sets the ones actually present). Without this, + /// Object.defineProperty(o, "a", { writable:false }) on an enumerable data + /// property a wrongly clears its enumerable flag, dropping it from + /// Object.keys/values/entries/for-in (#475). Scoped to plain objects + /// () — the surface affected by #475's enumerability + /// changes; instances/arrays/dicts keep their existing behavior. + /// + private static void PreserveOmittedAttributes( + object? target, string propertyKey, SharpTSPropertyDescriptor descriptor, object? descObj, Interpreter interpreter) + { + if (target is not SharpTSObject obj || descObj is null) return; + // Only a plain object/dictionary descriptor; exotic descriptors keep prior behavior. + if (descObj is not (SharpTSObject or Dictionary)) return; + bool exists = obj.Fields.ContainsKey(propertyKey) || obj.AccessorPropertyNames.Contains(propertyKey); + if (!exists) return; // a brand-new property defaults omitted attributes to false (spec) + var existing = obj.GetPropertyFlags(propertyKey); + // Attribute presence is read via interpreter.GetProperty, which walks the + // prototype chain (matching ECMA-262 ToPropertyDescriptor), so an inherited + // attribute is correctly treated as specified rather than preserved. + if (!DescriptorSpecifies(descObj, "writable", interpreter)) descriptor.Writable = existing.Writable; + if (!DescriptorSpecifies(descObj, "enumerable", interpreter)) descriptor.Enumerable = existing.Enumerable; + if (!DescriptorSpecifies(descObj, "configurable", interpreter)) descriptor.Configurable = existing.Configurable; + } + + /// True when the source descriptor object explicitly provides . + private static bool DescriptorSpecifies(object? descObj, string attr, Interpreter interpreter) + => interpreter.GetProperty(descObj, attr) is not (null or SharpTSUndefined); + /// /// Runtime helper for Object.create called from compiled code. /// diff --git a/Runtime/Types/SharpTSObject.cs b/Runtime/Types/SharpTSObject.cs index b9ebbd38..70ee8e37 100644 --- a/Runtime/Types/SharpTSObject.cs +++ b/Runtime/Types/SharpTSObject.cs @@ -604,5 +604,41 @@ public PropertyDescriptorFlags GetPropertyFlags(string name) return PropertyDescriptorFlags.Default; } + /// + /// Marks an existing own data property as non-enumerable, leaving its other + /// attributes unchanged. Used for a String exotic wrapper's length, + /// which is non-enumerable per ECMA-262 §22.1.4.1 so it stays out of + /// Object.keys/values/entries and for-in (#475). + /// + internal void MarkNonEnumerable(string name) + { + var cur = GetPropertyFlags(name); + _descriptors ??= new Dictionary(); + _descriptors[name] = PropertyDescriptorFlags.ForDefineProperty(cur.Writable, enumerable: false, cur.Configurable); + } + + /// + /// True for the internal-slot field names that back boxed primitive wrappers + /// (new String/Number/Boolean): they hold [[StringData]]/[[NumberData]]/ + /// [[BooleanData]] and the type tag, not real own properties, so enumeration + /// must skip them (#475). + /// + internal static bool IsInternalSlot(string key) => key is "__primitiveType" or "__primitiveValue"; + + /// + /// Own enumerable string-keyed data property names, in insertion order: the + /// data fields minus the boxed-primitive internal slots, honoring per-property + /// enumerability (a defineProperty enumerable:false field, and a + /// String exotic's non-enumerable length). Shared by Object.keys/values/ + /// entries and for-in so internal slots no longer leak and enumerability is + /// respected (#475), matching compiled $Runtime.GetKeys. + /// + internal IEnumerable OwnEnumerableKeys() + { + foreach (var key in _fields.Keys) + if (!IsInternalSlot(key) && GetPropertyFlags(key).Enumerable) + yield return key; + } + public override string ToString() => $"{{ {string.Join(", ", _fields.Select(f => $"{f.Key}: {f.Value}"))} }}"; } diff --git a/SharpTS.Test262/baselines/interpreted.txt b/SharpTS.Test262/baselines/interpreted.txt index f4a3e1ea..7e7717e3 100644 --- a/SharpTS.Test262/baselines/interpreted.txt +++ b/SharpTS.Test262/baselines/interpreted.txt @@ -4346,7 +4346,7 @@ test/built-ins/Object/create/15.2.3.5-4-304.js Fail test/built-ins/Object/create/15.2.3.5-4-305.js Pass test/built-ins/Object/create/15.2.3.5-4-306.js Pass test/built-ins/Object/create/15.2.3.5-4-307.js Pass -test/built-ins/Object/create/15.2.3.5-4-308.js Fail +test/built-ins/Object/create/15.2.3.5-4-308.js Pass test/built-ins/Object/create/15.2.3.5-4-309.js Pass test/built-ins/Object/create/15.2.3.5-4-31.js Pass test/built-ins/Object/create/15.2.3.5-4-310.js Fail @@ -4372,19 +4372,19 @@ test/built-ins/Object/create/15.2.3.5-4-43.js Fail test/built-ins/Object/create/15.2.3.5-4-44.js Fail test/built-ins/Object/create/15.2.3.5-4-45.js Fail test/built-ins/Object/create/15.2.3.5-4-46.js Pass -test/built-ins/Object/create/15.2.3.5-4-47.js Fail +test/built-ins/Object/create/15.2.3.5-4-47.js Pass test/built-ins/Object/create/15.2.3.5-4-48.js Pass test/built-ins/Object/create/15.2.3.5-4-49.js Pass test/built-ins/Object/create/15.2.3.5-4-5.js RuntimeError -test/built-ins/Object/create/15.2.3.5-4-50.js Fail -test/built-ins/Object/create/15.2.3.5-4-51.js Fail +test/built-ins/Object/create/15.2.3.5-4-50.js Pass +test/built-ins/Object/create/15.2.3.5-4-51.js Pass test/built-ins/Object/create/15.2.3.5-4-52.js Pass test/built-ins/Object/create/15.2.3.5-4-53.js Pass -test/built-ins/Object/create/15.2.3.5-4-54.js Fail -test/built-ins/Object/create/15.2.3.5-4-55.js Fail -test/built-ins/Object/create/15.2.3.5-4-56.js Fail +test/built-ins/Object/create/15.2.3.5-4-54.js Pass +test/built-ins/Object/create/15.2.3.5-4-55.js Pass +test/built-ins/Object/create/15.2.3.5-4-56.js Pass test/built-ins/Object/create/15.2.3.5-4-57.js Fail -test/built-ins/Object/create/15.2.3.5-4-58.js Fail +test/built-ins/Object/create/15.2.3.5-4-58.js Pass test/built-ins/Object/create/15.2.3.5-4-59.js Pass test/built-ins/Object/create/15.2.3.5-4-6.js Fail test/built-ins/Object/create/15.2.3.5-4-60.js Pass @@ -4399,18 +4399,18 @@ test/built-ins/Object/create/15.2.3.5-4-68.js Pass test/built-ins/Object/create/15.2.3.5-4-69.js Pass test/built-ins/Object/create/15.2.3.5-4-7.js Fail test/built-ins/Object/create/15.2.3.5-4-71.js RuntimeError -test/built-ins/Object/create/15.2.3.5-4-72.js Fail -test/built-ins/Object/create/15.2.3.5-4-73.js Fail +test/built-ins/Object/create/15.2.3.5-4-72.js Pass +test/built-ins/Object/create/15.2.3.5-4-73.js Pass test/built-ins/Object/create/15.2.3.5-4-74.js Pass -test/built-ins/Object/create/15.2.3.5-4-75.js Fail -test/built-ins/Object/create/15.2.3.5-4-76.js Fail -test/built-ins/Object/create/15.2.3.5-4-77.js Fail -test/built-ins/Object/create/15.2.3.5-4-78.js Fail -test/built-ins/Object/create/15.2.3.5-4-79.js Fail +test/built-ins/Object/create/15.2.3.5-4-75.js Pass +test/built-ins/Object/create/15.2.3.5-4-76.js Pass +test/built-ins/Object/create/15.2.3.5-4-77.js Pass +test/built-ins/Object/create/15.2.3.5-4-78.js Pass +test/built-ins/Object/create/15.2.3.5-4-79.js Pass test/built-ins/Object/create/15.2.3.5-4-8.js Fail test/built-ins/Object/create/15.2.3.5-4-80.js Pass test/built-ins/Object/create/15.2.3.5-4-81.js Pass -test/built-ins/Object/create/15.2.3.5-4-82.js Fail +test/built-ins/Object/create/15.2.3.5-4-82.js Pass test/built-ins/Object/create/15.2.3.5-4-83.js Pass test/built-ins/Object/create/15.2.3.5-4-84.js Pass test/built-ins/Object/create/15.2.3.5-4-85.js Pass @@ -4484,7 +4484,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-a-7.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-5-a-8.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-5-a-9.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-5-b-1.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-10.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-10.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-100.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-101.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-102.js Pass @@ -4494,7 +4494,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-105.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-106.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-107.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-109.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-5-b-11.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-11.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-110.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-111.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-112.js Pass @@ -4526,7 +4526,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-135.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-137.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-5-b-138.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-139.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-14.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-14.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-140.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-141.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-142.js Pass @@ -4537,7 +4537,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-146.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-147.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-148.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-149.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-15.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-15.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-150.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-151.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-152.js Fail @@ -4548,7 +4548,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-156.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-157.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-5-b-158.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-159.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-5-b-16.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-16.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-160.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-161.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-163.js RuntimeError @@ -4558,7 +4558,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-166.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-167.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-168.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-169.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-17.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-17.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-170.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-171.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-172.js Pass @@ -4569,7 +4569,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-176.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-177.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-178.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-179.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-18.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-18.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-180.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-181.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-182.js Pass @@ -4661,18 +4661,18 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-28.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-29.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-3.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-31.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-5-b-32.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-33.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-32.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-5-b-33.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-34.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-35.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-36.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-37.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-38.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-5-b-39.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-35.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-5-b-36.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-5-b-37.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-5-b-38.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-5-b-39.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-4.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-40.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-41.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-42.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-42.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-43.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-44.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-45.js Pass @@ -4701,7 +4701,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-5-b-66.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-67.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-68.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-69.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-5-b-7.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-5-b-7.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-70.js Fail test/built-ins/Object/defineProperties/15.2.3.7-5-b-71.js Pass test/built-ins/Object/defineProperties/15.2.3.7-5-b-72.js Pass @@ -4943,7 +4943,7 @@ test/built-ins/Object/defineProperties/15.2.3.7-6-a-286.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-287.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-6-a-29.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-29.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js RuntimeError @@ -4983,25 +4983,25 @@ test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-4.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-44.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js Pass -test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-57.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-58.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-6.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js Fail @@ -5014,9 +5014,9 @@ test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-67.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-69.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-7.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js Pass @@ -5043,14 +5043,14 @@ test/built-ins/Object/defineProperties/15.2.3.7-6-a-9.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js RuntimeError test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js RuntimeError -test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js Fail -test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js Fail +test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js Pass +test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js Pass test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js Fail test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js Fail @@ -5252,7 +5252,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-197.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-198.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-199.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-2.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-20.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-20.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-200.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-202.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-203.js Pass @@ -5262,7 +5262,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-206.js Fail test/built-ins/Object/defineProperty/15.2.3.6-3-207.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-208.js Fail test/built-ins/Object/defineProperty/15.2.3.6-3-209.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-3-21.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-21.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-210.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-211.js Fail test/built-ins/Object/defineProperty/15.2.3.6-3-212.js Fail @@ -5343,9 +5343,9 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-27.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-28.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-29.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-3.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-30.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-30.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-31.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-32.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-32.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-33-1.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-33.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-34-1.js RuntimeError @@ -5361,7 +5361,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-38.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-39-1.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-39.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-4.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-40-1.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-3-40-1.js Fail test/built-ins/Object/defineProperty/15.2.3.6-3-40.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-41-1.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-41.js RuntimeError @@ -5370,18 +5370,18 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-42.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-43-1.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-43.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-45.js RuntimeError -test/built-ins/Object/defineProperty/15.2.3.6-3-46.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-47.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-46.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-3-47.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-48.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-3-49.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-49.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-5.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-50.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-51.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-52.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-3-53.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-50.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-3-51.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-3-52.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-3-53.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-54.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-55.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-3-56.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-3-56.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-57.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-58.js Pass test/built-ins/Object/defineProperty/15.2.3.6-3-59.js Pass @@ -5440,13 +5440,13 @@ test/built-ins/Object/defineProperty/15.2.3.6-3-98.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-3-99.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-1.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-10.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-100.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-101.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-102.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-103.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-104.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-100.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-4-101.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-4-102.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-4-103.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-4-104.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-105.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-106.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-106.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-107.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-108.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-109.js Fail @@ -5454,7 +5454,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-11.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-110.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-111.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-112.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-113.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-113.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-114.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-115.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-116.js Fail @@ -5494,7 +5494,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-146.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-147.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-148.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-149.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-15.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-15.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-150.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-151.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-152.js Fail @@ -5730,14 +5730,14 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-33.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-330.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-331.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-332.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js RuntimeError +test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-333-10.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-333-11.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-333-4.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-333-5.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js RuntimeError +test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-333-9.js Pass @@ -5754,22 +5754,22 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-339-4.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-339.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-34.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-340.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-341.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-341.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-342.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-343.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-344.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-345.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-346.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-347.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-348.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-348.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-349.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-35.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-350.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-351.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-352.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-353.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js Pass +test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-354-15.js Fail @@ -5798,7 +5798,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-365.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-366.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-367.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-368.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-369.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-369.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-37.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-370.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-371.js Fail @@ -5806,7 +5806,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-372.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-373.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-374.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-375.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-376.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-376.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-377.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-378.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-379.js Fail @@ -5862,7 +5862,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-424.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-425.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-426.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-427.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-428.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-428.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-429.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-43.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-430.js Fail @@ -5877,21 +5877,21 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-438.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-439.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-440.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-441.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-442.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-442.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-443.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-444.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-445.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-446.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-446.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-447.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-448.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-449.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-45.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-450.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-451.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-451.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-452.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-453.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-454.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-455.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-455.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-456.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-457.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-458.js Fail @@ -5997,7 +5997,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js RuntimeError -test/built-ins/Object/defineProperty/15.2.3.6-4-538.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-538.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-539.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-54.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js Fail @@ -6080,7 +6080,7 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-597.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-598.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-599.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-6.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-60.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-60.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-600.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-601.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-602.js Fail @@ -6112,23 +6112,23 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-625gs.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-63.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-64.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-65.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-66.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-66.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-67.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-68.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-68.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-69.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-7.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-70.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-70.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-71.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-72.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-72.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-73.js Pass -test/built-ins/Object/defineProperty/15.2.3.6-4-74.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-74.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-75.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-76.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-77.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-78.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-79.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-8.js Fail -test/built-ins/Object/defineProperty/15.2.3.6-4-80.js Fail +test/built-ins/Object/defineProperty/15.2.3.6-4-80.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-81.js Pass test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js Fail @@ -6173,10 +6173,10 @@ test/built-ins/Object/defineProperty/15.2.3.6-4-96.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-97.js Fail test/built-ins/Object/defineProperty/15.2.3.6-4-98.js RuntimeError test/built-ins/Object/defineProperty/15.2.3.6-4-99.js Fail -test/built-ins/Object/defineProperty/8.12.9-9-b-i_1.js Fail -test/built-ins/Object/defineProperty/8.12.9-9-b-i_2.js Fail -test/built-ins/Object/defineProperty/8.12.9-9-c-i_1.js Fail -test/built-ins/Object/defineProperty/8.12.9-9-c-i_2.js Fail +test/built-ins/Object/defineProperty/8.12.9-9-b-i_1.js Pass +test/built-ins/Object/defineProperty/8.12.9-9-b-i_2.js Pass +test/built-ins/Object/defineProperty/8.12.9-9-c-i_1.js Pass +test/built-ins/Object/defineProperty/8.12.9-9-c-i_2.js Pass test/built-ins/Object/defineProperty/S15.2.3.6_A1.js Pass test/built-ins/Object/defineProperty/S15.2.3.6_A2.js Pass test/built-ins/Object/defineProperty/coerced-P-grow.js RuntimeError @@ -6967,8 +6967,8 @@ test/built-ins/Object/keys/15.2.3.14-2-3.js Pass test/built-ins/Object/keys/15.2.3.14-2-4.js Pass test/built-ins/Object/keys/15.2.3.14-2-5.js Pass test/built-ins/Object/keys/15.2.3.14-2-6.js Pass -test/built-ins/Object/keys/15.2.3.14-2-7.js Fail -test/built-ins/Object/keys/15.2.3.14-2-8.js Fail +test/built-ins/Object/keys/15.2.3.14-2-7.js Pass +test/built-ins/Object/keys/15.2.3.14-2-8.js Pass test/built-ins/Object/keys/15.2.3.14-3-1.js Pass test/built-ins/Object/keys/15.2.3.14-3-2.js RuntimeError test/built-ins/Object/keys/15.2.3.14-3-3.js Pass @@ -6990,9 +6990,9 @@ test/built-ins/Object/keys/15.2.3.14-5-3.js RuntimeError test/built-ins/Object/keys/15.2.3.14-5-4.js Pass test/built-ins/Object/keys/15.2.3.14-5-5.js Pass test/built-ins/Object/keys/15.2.3.14-5-6.js Pass -test/built-ins/Object/keys/15.2.3.14-5-7.js Fail +test/built-ins/Object/keys/15.2.3.14-5-7.js Pass test/built-ins/Object/keys/15.2.3.14-5-8.js Pass -test/built-ins/Object/keys/15.2.3.14-5-9.js Fail +test/built-ins/Object/keys/15.2.3.14-5-9.js Pass test/built-ins/Object/keys/15.2.3.14-5-a-1.js Pass test/built-ins/Object/keys/15.2.3.14-5-a-2.js Pass test/built-ins/Object/keys/15.2.3.14-5-a-3.js Pass @@ -10046,7 +10046,7 @@ test/built-ins/String/S15.5.3_A1.js Fail test/built-ins/String/S15.5.3_A2_T1.js RuntimeError test/built-ins/String/S15.5.3_A2_T2.js RuntimeError test/built-ins/String/S15.5.5.1_A1.js Pass -test/built-ins/String/S15.5.5.1_A2.js RuntimeError +test/built-ins/String/S15.5.5.1_A2.js Pass test/built-ins/String/S15.5.5.1_A3.js RuntimeError test/built-ins/String/S15.5.5.1_A4_T1.js RuntimeError test/built-ins/String/S15.5.5.1_A4_T2.js RuntimeError