Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/js/v8natives.js

Issue 1411653002: Install iterator meta objects via utils object. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: addressed comments Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/js/string-iterator.js ('k') | test/cctest/test-heap.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 11
12 var FLAG_harmony_tostring; 12 var FLAG_harmony_tostring;
13 var GlobalArray = global.Array; 13 var GlobalArray = global.Array;
14 var GlobalBoolean = global.Boolean; 14 var GlobalBoolean = global.Boolean;
15 var GlobalFunction = global.Function; 15 var GlobalFunction = global.Function;
16 var GlobalNumber = global.Number; 16 var GlobalNumber = global.Number;
17 var GlobalObject = global.Object; 17 var GlobalObject = global.Object;
18 var InternalArray = utils.InternalArray; 18 var InternalArray = utils.InternalArray;
19 var iteratorSymbol = utils.ImportNow("iterator_symbol"); 19 var iteratorSymbol = utils.ImportNow("iterator_symbol");
20 var MathAbs; 20 var MathAbs;
21 var NaN = %GetRootNaN(); 21 var NaN = %GetRootNaN();
22 var ObserveBeginPerformSplice; 22 var ObserveBeginPerformSplice;
23 var ObserveEndPerformSplice; 23 var ObserveEndPerformSplice;
24 var ObserveEnqueueSpliceRecord; 24 var ObserveEnqueueSpliceRecord;
25 var ProxyDelegateCallAndConstruct; 25 var ProxyDelegateCallAndConstruct;
26 var ProxyDerivedHasOwnTrap; 26 var ProxyDerivedHasOwnTrap;
27 var ProxyDerivedKeysTrap; 27 var ProxyDerivedKeysTrap;
28 var SameValue = utils.ImportNow("SameValue");
28 var StringIndexOf; 29 var StringIndexOf;
29 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); 30 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
30 31
31 utils.Import(function(from) { 32 utils.Import(function(from) {
32 MathAbs = from.MathAbs; 33 MathAbs = from.MathAbs;
33 ObserveBeginPerformSplice = from.ObserveBeginPerformSplice; 34 ObserveBeginPerformSplice = from.ObserveBeginPerformSplice;
34 ObserveEndPerformSplice = from.ObserveEndPerformSplice; 35 ObserveEndPerformSplice = from.ObserveEndPerformSplice;
35 ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord; 36 ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord;
36 StringIndexOf = from.StringIndexOf; 37 StringIndexOf = from.StringIndexOf;
37 }); 38 });
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 } else { 647 } else {
647 return false; 648 return false;
648 } 649 }
649 } 650 }
650 651
651 if (!IS_UNDEFINED(current)) { 652 if (!IS_UNDEFINED(current)) {
652 // Step 5 and 6 653 // Step 5 and 6
653 if ((IsGenericDescriptor(desc) || 654 if ((IsGenericDescriptor(desc) ||
654 IsDataDescriptor(desc) == IsDataDescriptor(current)) && 655 IsDataDescriptor(desc) == IsDataDescriptor(current)) &&
655 (!desc.hasEnumerable() || 656 (!desc.hasEnumerable() ||
656 $sameValue(desc.isEnumerable(), current.isEnumerable())) && 657 SameValue(desc.isEnumerable(), current.isEnumerable())) &&
657 (!desc.hasConfigurable() || 658 (!desc.hasConfigurable() ||
658 $sameValue(desc.isConfigurable(), current.isConfigurable())) && 659 SameValue(desc.isConfigurable(), current.isConfigurable())) &&
659 (!desc.hasWritable() || 660 (!desc.hasWritable() ||
660 $sameValue(desc.isWritable(), current.isWritable())) && 661 SameValue(desc.isWritable(), current.isWritable())) &&
661 (!desc.hasValue() || 662 (!desc.hasValue() ||
662 $sameValue(desc.getValue(), current.getValue())) && 663 SameValue(desc.getValue(), current.getValue())) &&
663 (!desc.hasGetter() || 664 (!desc.hasGetter() ||
664 $sameValue(desc.getGet(), current.getGet())) && 665 SameValue(desc.getGet(), current.getGet())) &&
665 (!desc.hasSetter() || 666 (!desc.hasSetter() ||
666 $sameValue(desc.getSet(), current.getSet()))) { 667 SameValue(desc.getSet(), current.getSet()))) {
667 return true; 668 return true;
668 } 669 }
669 if (!current.isConfigurable()) { 670 if (!current.isConfigurable()) {
670 // Step 7 671 // Step 7
671 if (desc.isConfigurable() || 672 if (desc.isConfigurable() ||
672 (desc.hasEnumerable() && 673 (desc.hasEnumerable() &&
673 desc.isEnumerable() != current.isEnumerable())) { 674 desc.isEnumerable() != current.isEnumerable())) {
674 if (should_throw) { 675 if (should_throw) {
675 throw MakeTypeError(kRedefineDisallowed, p); 676 throw MakeTypeError(kRedefineDisallowed, p);
676 } else { 677 } else {
(...skipping 18 matching lines...) Expand all
695 if (should_throw) { 696 if (should_throw) {
696 throw currentIsWritable 697 throw currentIsWritable
697 ? MakeTypeError(kStrongRedefineDisallowed, obj, p) 698 ? MakeTypeError(kStrongRedefineDisallowed, obj, p)
698 : MakeTypeError(kRedefineDisallowed, p); 699 : MakeTypeError(kRedefineDisallowed, p);
699 } else { 700 } else {
700 return false; 701 return false;
701 } 702 }
702 } 703 }
703 } 704 }
704 if (!currentIsWritable && desc.hasValue() && 705 if (!currentIsWritable && desc.hasValue() &&
705 !$sameValue(desc.getValue(), current.getValue())) { 706 !SameValue(desc.getValue(), current.getValue())) {
706 if (should_throw) { 707 if (should_throw) {
707 throw MakeTypeError(kRedefineDisallowed, p); 708 throw MakeTypeError(kRedefineDisallowed, p);
708 } else { 709 } else {
709 return false; 710 return false;
710 } 711 }
711 } 712 }
712 } 713 }
713 // Step 11 714 // Step 11
714 if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) { 715 if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) {
715 if (desc.hasSetter() && 716 if (desc.hasSetter() &&
716 !$sameValue(desc.getSet(), current.getSet())) { 717 !SameValue(desc.getSet(), current.getSet())) {
717 if (should_throw) { 718 if (should_throw) {
718 throw MakeTypeError(kRedefineDisallowed, p); 719 throw MakeTypeError(kRedefineDisallowed, p);
719 } else { 720 } else {
720 return false; 721 return false;
721 } 722 }
722 } 723 }
723 if (desc.hasGetter() && !$sameValue(desc.getGet(),current.getGet())) { 724 if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet())) {
724 if (should_throw) { 725 if (should_throw) {
725 throw MakeTypeError(kRedefineDisallowed, p); 726 throw MakeTypeError(kRedefineDisallowed, p);
726 } else { 727 } else {
727 return false; 728 return false;
728 } 729 }
729 } 730 }
730 } 731 }
731 } 732 }
732 } 733 }
733 } 734 }
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 // ES5 section 15.2.3.13 1253 // ES5 section 15.2.3.13
1253 function ObjectIsExtensible(obj) { 1254 function ObjectIsExtensible(obj) {
1254 if (!IS_SPEC_OBJECT(obj)) return false; 1255 if (!IS_SPEC_OBJECT(obj)) return false;
1255 if (%_IsJSProxy(obj)) { 1256 if (%_IsJSProxy(obj)) {
1256 return true; 1257 return true;
1257 } 1258 }
1258 return %IsExtensible(obj); 1259 return %IsExtensible(obj);
1259 } 1260 }
1260 1261
1261 1262
1262 // ECMA-262, Edition 6, section 19.1.2.10
1263 function ObjectIs(obj1, obj2) {
1264 return $sameValue(obj1, obj2);
1265 }
1266
1267
1268 // ECMA-262, Edition 6, section 19.1.2.1 1263 // ECMA-262, Edition 6, section 19.1.2.1
1269 function ObjectAssign(target, sources) { 1264 function ObjectAssign(target, sources) {
1270 // TODO(bmeurer): Move this to toplevel. 1265 // TODO(bmeurer): Move this to toplevel.
1271 "use strict"; 1266 "use strict";
1272 var to = TO_OBJECT(target); 1267 var to = TO_OBJECT(target);
1273 var argsLen = %_ArgumentsLength(); 1268 var argsLen = %_ArgumentsLength();
1274 if (argsLen < 2) return to; 1269 if (argsLen < 2) return to;
1275 1270
1276 for (var i = 1; i < argsLen; ++i) { 1271 for (var i = 1; i < argsLen; ++i) {
1277 var nextSource = %_Arguments(i); 1272 var nextSource = %_Arguments(i);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 "keys", ObjectKeys, 1348 "keys", ObjectKeys,
1354 "create", ObjectCreate, 1349 "create", ObjectCreate,
1355 "defineProperty", ObjectDefineProperty, 1350 "defineProperty", ObjectDefineProperty,
1356 "defineProperties", ObjectDefineProperties, 1351 "defineProperties", ObjectDefineProperties,
1357 "freeze", ObjectFreezeJS, 1352 "freeze", ObjectFreezeJS,
1358 "getPrototypeOf", ObjectGetPrototypeOf, 1353 "getPrototypeOf", ObjectGetPrototypeOf,
1359 "setPrototypeOf", ObjectSetPrototypeOf, 1354 "setPrototypeOf", ObjectSetPrototypeOf,
1360 "getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor, 1355 "getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor,
1361 "getOwnPropertyNames", ObjectGetOwnPropertyNames, 1356 "getOwnPropertyNames", ObjectGetOwnPropertyNames,
1362 // getOwnPropertySymbols is added in symbol.js. 1357 // getOwnPropertySymbols is added in symbol.js.
1363 "is", ObjectIs, 1358 "is", SameValue, // ECMA-262, Edition 6, section 19.1.2.10
1364 "isExtensible", ObjectIsExtensible, 1359 "isExtensible", ObjectIsExtensible,
1365 "isFrozen", ObjectIsFrozen, 1360 "isFrozen", ObjectIsFrozen,
1366 "isSealed", ObjectIsSealed, 1361 "isSealed", ObjectIsSealed,
1367 "preventExtensions", ObjectPreventExtension, 1362 "preventExtensions", ObjectPreventExtension,
1368 "seal", ObjectSealJS 1363 "seal", ObjectSealJS
1369 // deliverChangeRecords, getNotifier, observe and unobserve are added 1364 // deliverChangeRecords, getNotifier, observe and unobserve are added
1370 // in object-observe.js. 1365 // in object-observe.js.
1371 ]); 1366 ]);
1372 1367
1373 1368
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
1848 %InstallToContext([ 1843 %InstallToContext([
1849 "global_eval_fun", GlobalEval, 1844 "global_eval_fun", GlobalEval,
1850 "object_value_of", ObjectValueOf, 1845 "object_value_of", ObjectValueOf,
1851 "object_to_string", ObjectToString, 1846 "object_to_string", ObjectToString,
1852 "object_define_own_property", DefineOwnPropertyFromAPI, 1847 "object_define_own_property", DefineOwnPropertyFromAPI,
1853 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, 1848 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor,
1854 "to_complete_property_descriptor", ToCompletePropertyDescriptor, 1849 "to_complete_property_descriptor", ToCompletePropertyDescriptor,
1855 ]); 1850 ]);
1856 1851
1857 }) 1852 })
OLDNEW
« no previous file with comments | « src/js/string-iterator.js ('k') | test/cctest/test-heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698