| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 (function(global, utils) { | 5 (function(global, utils) { | 
| 6 | 6 | 
| 7 %CheckIsBootstrapping(); | 7 %CheckIsBootstrapping(); | 
| 8 | 8 | 
| 9 // ---------------------------------------------------------------------------- | 9 // ---------------------------------------------------------------------------- | 
| 10 // Imports | 10 // Imports | 
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 532     } | 532     } | 
| 533   } | 533   } | 
| 534   return true; | 534   return true; | 
| 535 } | 535 } | 
| 536 | 536 | 
| 537 | 537 | 
| 538 // ES6 9.1.6 [[DefineOwnProperty]](P, Desc) | 538 // ES6 9.1.6 [[DefineOwnProperty]](P, Desc) | 
| 539 function DefineObjectProperty(obj, p, desc, should_throw) { | 539 function DefineObjectProperty(obj, p, desc, should_throw) { | 
| 540   var current_array = %GetOwnProperty_Legacy(obj, TO_NAME(p)); | 540   var current_array = %GetOwnProperty_Legacy(obj, TO_NAME(p)); | 
| 541   var current = ConvertDescriptorArrayToDescriptor(current_array); | 541   var current = ConvertDescriptorArrayToDescriptor(current_array); | 
| 542   var extensible = %IsExtensible(obj); | 542   var extensible = %object_is_extensible(obj); | 
| 543 | 543 | 
| 544   if (IS_UNDEFINED(current) && !extensible) { | 544   if (IS_UNDEFINED(current) && !extensible) { | 
| 545     if (should_throw) { | 545     if (should_throw) { | 
| 546       throw MakeTypeError(kDefineDisallowed, p); | 546       throw MakeTypeError(kDefineDisallowed, p); | 
| 547     } else { | 547     } else { | 
| 548       return false; | 548       return false; | 
| 549     } | 549     } | 
| 550   } | 550   } | 
| 551 | 551 | 
| 552   if (!IS_UNDEFINED(current)) { | 552   if (!IS_UNDEFINED(current)) { | 
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 831     } | 831     } | 
| 832     for (var i = 0; i < names.length; i++) { | 832     for (var i = 0; i < names.length; i++) { | 
| 833       DefineOwnProperty(obj, names[i], descriptors[i], true); | 833       DefineOwnProperty(obj, names[i], descriptors[i], true); | 
| 834     } | 834     } | 
| 835     return obj; | 835     return obj; | 
| 836   } | 836   } | 
| 837   return %ObjectDefineProperties(obj, properties); | 837   return %ObjectDefineProperties(obj, properties); | 
| 838 } | 838 } | 
| 839 | 839 | 
| 840 | 840 | 
| 841 // ES6 19.1.2.17 |  | 
| 842 function ObjectSealJS(obj) { |  | 
| 843   if (!IS_RECEIVER(obj)) return obj; |  | 
| 844   return %ObjectSeal(obj); |  | 
| 845 } |  | 
| 846 |  | 
| 847 |  | 
| 848 // ES6 19.1.2.5 |  | 
| 849 function ObjectFreezeJS(obj) { |  | 
| 850   if (!IS_RECEIVER(obj)) return obj; |  | 
| 851   return %ObjectFreeze(obj); |  | 
| 852 } |  | 
| 853 |  | 
| 854 |  | 
| 855 // ES6 19.1.2.15 |  | 
| 856 function ObjectPreventExtension(obj) { |  | 
| 857   if (!IS_RECEIVER(obj)) return obj; |  | 
| 858   return %PreventExtensions(obj); |  | 
| 859 } |  | 
| 860 |  | 
| 861 |  | 
| 862 // ES6 19.1.2.13 |  | 
| 863 function ObjectIsSealed(obj) { |  | 
| 864   if (!IS_RECEIVER(obj)) return true; |  | 
| 865   return %ObjectIsSealed(obj); |  | 
| 866 } |  | 
| 867 |  | 
| 868 |  | 
| 869 // ES6 19.1.2.12 |  | 
| 870 function ObjectIsFrozen(obj) { |  | 
| 871   if (!IS_RECEIVER(obj)) return true; |  | 
| 872   return %ObjectIsFrozen(obj); |  | 
| 873 } |  | 
| 874 |  | 
| 875 |  | 
| 876 // ES6 19.1.2.11 |  | 
| 877 function ObjectIsExtensible(obj) { |  | 
| 878   if (!IS_RECEIVER(obj)) return false; |  | 
| 879   return %IsExtensible(obj); |  | 
| 880 } |  | 
| 881 |  | 
| 882 |  | 
| 883 // ES6 B.2.2.1.1 | 841 // ES6 B.2.2.1.1 | 
| 884 function ObjectGetProto() { | 842 function ObjectGetProto() { | 
| 885   return %_GetPrototype(TO_OBJECT(this)); | 843   return %_GetPrototype(TO_OBJECT(this)); | 
| 886 } | 844 } | 
| 887 | 845 | 
| 888 | 846 | 
| 889 // ES6 B.2.2.1.2 | 847 // ES6 B.2.2.1.2 | 
| 890 function ObjectSetProto(proto) { | 848 function ObjectSetProto(proto) { | 
| 891   CHECK_OBJECT_COERCIBLE(this, "Object.prototype.__proto__"); | 849   CHECK_OBJECT_COERCIBLE(this, "Object.prototype.__proto__"); | 
| 892 | 850 | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 930 ]); | 888 ]); | 
| 931 utils.InstallGetterSetter(GlobalObject.prototype, "__proto__", ObjectGetProto, | 889 utils.InstallGetterSetter(GlobalObject.prototype, "__proto__", ObjectGetProto, | 
| 932                     ObjectSetProto); | 890                     ObjectSetProto); | 
| 933 | 891 | 
| 934 // Set up non-enumerable functions in the Object object. | 892 // Set up non-enumerable functions in the Object object. | 
| 935 utils.InstallFunctions(GlobalObject, DONT_ENUM, [ | 893 utils.InstallFunctions(GlobalObject, DONT_ENUM, [ | 
| 936   // assign is added in bootstrapper.cc. | 894   // assign is added in bootstrapper.cc. | 
| 937   "keys", ObjectKeys, | 895   "keys", ObjectKeys, | 
| 938   "defineProperty", ObjectDefineProperty, | 896   "defineProperty", ObjectDefineProperty, | 
| 939   "defineProperties", ObjectDefineProperties, | 897   "defineProperties", ObjectDefineProperties, | 
| 940   "freeze", ObjectFreezeJS, |  | 
| 941   "getPrototypeOf", ObjectGetPrototypeOf, | 898   "getPrototypeOf", ObjectGetPrototypeOf, | 
| 942   "setPrototypeOf", ObjectSetPrototypeOf, | 899   "setPrototypeOf", ObjectSetPrototypeOf, | 
| 943   "getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor, | 900   "getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor, | 
| 944   "getOwnPropertyNames", ObjectGetOwnPropertyNames, | 901   "getOwnPropertyNames", ObjectGetOwnPropertyNames, | 
| 945   // getOwnPropertySymbols is added in symbol.js. | 902   // getOwnPropertySymbols is added in symbol.js. | 
| 946   "is", SameValue,  // ECMA-262, Edition 6, section 19.1.2.10 | 903   "is", SameValue,  // ECMA-262, Edition 6, section 19.1.2.10 | 
| 947   "isExtensible", ObjectIsExtensible, |  | 
| 948   "isFrozen", ObjectIsFrozen, |  | 
| 949   "isSealed", ObjectIsSealed, |  | 
| 950   "preventExtensions", ObjectPreventExtension, |  | 
| 951   "seal", ObjectSealJS |  | 
| 952   // deliverChangeRecords, getNotifier, observe and unobserve are added | 904   // deliverChangeRecords, getNotifier, observe and unobserve are added | 
| 953   // in object-observe.js. | 905   // in object-observe.js. | 
| 954 ]); | 906 ]); | 
| 955 | 907 | 
| 956 | 908 | 
| 957 // ---------------------------------------------------------------------------- | 909 // ---------------------------------------------------------------------------- | 
| 958 // Boolean | 910 // Boolean | 
| 959 | 911 | 
| 960 function BooleanConstructor(x) { | 912 function BooleanConstructor(x) { | 
| 961   // TODO(bmeurer): Move this to toplevel. | 913   // TODO(bmeurer): Move this to toplevel. | 
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1250 // Exports | 1202 // Exports | 
| 1251 | 1203 | 
| 1252 utils.Export(function(to) { | 1204 utils.Export(function(to) { | 
| 1253   to.GetIterator = GetIterator; | 1205   to.GetIterator = GetIterator; | 
| 1254   to.GetMethod = GetMethod; | 1206   to.GetMethod = GetMethod; | 
| 1255   to.IsFinite = GlobalIsFinite; | 1207   to.IsFinite = GlobalIsFinite; | 
| 1256   to.IsNaN = GlobalIsNaN; | 1208   to.IsNaN = GlobalIsNaN; | 
| 1257   to.NumberIsNaN = NumberIsNaN; | 1209   to.NumberIsNaN = NumberIsNaN; | 
| 1258   to.ObjectDefineProperties = ObjectDefineProperties; | 1210   to.ObjectDefineProperties = ObjectDefineProperties; | 
| 1259   to.ObjectDefineProperty = ObjectDefineProperty; | 1211   to.ObjectDefineProperty = ObjectDefineProperty; | 
| 1260   to.ObjectFreeze = ObjectFreezeJS; |  | 
| 1261   to.ObjectHasOwnProperty = ObjectHasOwnProperty; | 1212   to.ObjectHasOwnProperty = ObjectHasOwnProperty; | 
| 1262   to.ObjectIsFrozen = ObjectIsFrozen; |  | 
| 1263   to.ObjectIsSealed = ObjectIsSealed; |  | 
| 1264   to.ObjectKeys = ObjectKeys; | 1213   to.ObjectKeys = ObjectKeys; | 
| 1265 }); | 1214 }); | 
| 1266 | 1215 | 
| 1267 %InstallToContext([ | 1216 %InstallToContext([ | 
| 1268   "object_value_of", ObjectValueOf, | 1217   "object_value_of", ObjectValueOf, | 
| 1269 ]); | 1218 ]); | 
| 1270 | 1219 | 
| 1271 }) | 1220 }) | 
| OLD | NEW | 
|---|