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

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

Issue 2096933002: Remove all harmony runtime flags which shipped in M51 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Review comments Created 4 years, 6 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/isolate-inl.h ('k') | src/js/arraybuffer.js » ('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, extrasUtils) { 5 (function(global, utils, extrasUtils) {
6 6
7 "use strict"; 7 "use strict";
8 8
9 %CheckIsBootstrapping(); 9 %CheckIsBootstrapping();
10 10
11 // ------------------------------------------------------------------- 11 // -------------------------------------------------------------------
12 // Imports 12 // Imports
13 13
14 var FLAG_harmony_species;
15 var GetIterator; 14 var GetIterator;
16 var GetMethod; 15 var GetMethod;
17 var GlobalArray = global.Array; 16 var GlobalArray = global.Array;
18 var InternalArray = utils.InternalArray; 17 var InternalArray = utils.InternalArray;
19 var InternalPackedArray = utils.InternalPackedArray; 18 var InternalPackedArray = utils.InternalPackedArray;
20 var MakeTypeError; 19 var MakeTypeError;
21 var MaxSimple; 20 var MaxSimple;
22 var MinSimple; 21 var MinSimple;
23 var ObjectHasOwnProperty; 22 var ObjectHasOwnProperty;
24 var ObjectToString = utils.ImportNow("object_to_string"); 23 var ObjectToString = utils.ImportNow("object_to_string");
25 var iteratorSymbol = utils.ImportNow("iterator_symbol"); 24 var iteratorSymbol = utils.ImportNow("iterator_symbol");
25 var speciesSymbol = utils.ImportNow("species_symbol");
26 var unscopablesSymbol = utils.ImportNow("unscopables_symbol"); 26 var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
27 27
28 utils.Import(function(from) { 28 utils.Import(function(from) {
29 GetIterator = from.GetIterator; 29 GetIterator = from.GetIterator;
30 GetMethod = from.GetMethod; 30 GetMethod = from.GetMethod;
31 MakeTypeError = from.MakeTypeError; 31 MakeTypeError = from.MakeTypeError;
32 MaxSimple = from.MaxSimple; 32 MaxSimple = from.MaxSimple;
33 MinSimple = from.MinSimple; 33 MinSimple = from.MinSimple;
34 ObjectHasOwnProperty = from.ObjectHasOwnProperty; 34 ObjectHasOwnProperty = from.ObjectHasOwnProperty;
35 }); 35 });
36 36
37 utils.ImportFromExperimental(function(from) {
38 FLAG_harmony_species = from.FLAG_harmony_species;
39 });
40
41 // ------------------------------------------------------------------- 37 // -------------------------------------------------------------------
42 38
43 39
44 function ArraySpeciesCreate(array, length) { 40 function ArraySpeciesCreate(array, length) {
45 var constructor;
46
47 length = INVERT_NEG_ZERO(length); 41 length = INVERT_NEG_ZERO(length);
48 42 var constructor = %ArraySpeciesConstructor(array);
49 if (FLAG_harmony_species) {
50 constructor = %ArraySpeciesConstructor(array);
51 } else {
52 constructor = GlobalArray;
53 }
54 return new constructor(length); 43 return new constructor(length);
55 } 44 }
56 45
57 46
58 function KeySortCompare(a, b) { 47 function KeySortCompare(a, b) {
59 return a - b; 48 return a - b;
60 } 49 }
61 50
62 function GetSortedArrayKeys(array, indices) { 51 function GetSortedArrayKeys(array, indices) {
63 if (IS_NUMBER(indices)) { 52 if (IS_NUMBER(indices)) {
(...skipping 1571 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 var constructor = this; 1624 var constructor = this;
1636 // TODO: Implement IsConstructor (ES6 section 7.2.5) 1625 // TODO: Implement IsConstructor (ES6 section 7.2.5)
1637 var array = %IsConstructor(constructor) ? new constructor(length) : []; 1626 var array = %IsConstructor(constructor) ? new constructor(length) : [];
1638 for (var i = 0; i < length; i++) { 1627 for (var i = 0; i < length; i++) {
1639 %CreateDataProperty(array, i, args[i]); 1628 %CreateDataProperty(array, i, args[i]);
1640 } 1629 }
1641 array.length = length; 1630 array.length = length;
1642 return array; 1631 return array;
1643 } 1632 }
1644 1633
1634
1635 function ArraySpecies() {
1636 return this;
1637 }
1638
1639
1645 // ------------------------------------------------------------------- 1640 // -------------------------------------------------------------------
1646 1641
1647 // Set up non-enumerable constructor property on the Array.prototype 1642 // Set up non-enumerable constructor property on the Array.prototype
1648 // object. 1643 // object.
1649 %AddNamedProperty(GlobalArray.prototype, "constructor", GlobalArray, 1644 %AddNamedProperty(GlobalArray.prototype, "constructor", GlobalArray,
1650 DONT_ENUM); 1645 DONT_ENUM);
1651 1646
1652 // Set up unscopable properties on the Array.prototype object. 1647 // Set up unscopable properties on the Array.prototype object.
1653 var unscopables = { 1648 var unscopables = {
1654 __proto__: null, 1649 __proto__: null,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1710 "lastIndexOf", getFunction("lastIndexOf", ArrayLastIndexOf, 1), 1705 "lastIndexOf", getFunction("lastIndexOf", ArrayLastIndexOf, 1),
1711 "reduce", getFunction("reduce", ArrayReduce, 1), 1706 "reduce", getFunction("reduce", ArrayReduce, 1),
1712 "reduceRight", getFunction("reduceRight", ArrayReduceRight, 1), 1707 "reduceRight", getFunction("reduceRight", ArrayReduceRight, 1),
1713 "copyWithin", getFunction("copyWithin", ArrayCopyWithin, 2), 1708 "copyWithin", getFunction("copyWithin", ArrayCopyWithin, 2),
1714 "find", getFunction("find", ArrayFind, 1), 1709 "find", getFunction("find", ArrayFind, 1),
1715 "findIndex", getFunction("findIndex", ArrayFindIndex, 1), 1710 "findIndex", getFunction("findIndex", ArrayFindIndex, 1),
1716 "fill", getFunction("fill", ArrayFill, 1), 1711 "fill", getFunction("fill", ArrayFill, 1),
1717 "includes", getFunction("includes", ArrayIncludes, 1), 1712 "includes", getFunction("includes", ArrayIncludes, 1),
1718 ]); 1713 ]);
1719 1714
1715 utils.InstallGetter(GlobalArray, speciesSymbol, ArraySpecies);
1716
1720 %FinishArrayPrototypeSetup(GlobalArray.prototype); 1717 %FinishArrayPrototypeSetup(GlobalArray.prototype);
1721 1718
1722 // The internal Array prototype doesn't need to be fancy, since it's never 1719 // The internal Array prototype doesn't need to be fancy, since it's never
1723 // exposed to user code. 1720 // exposed to user code.
1724 // Adding only the functions that are actually used. 1721 // Adding only the functions that are actually used.
1725 utils.SetUpLockedPrototype(InternalArray, GlobalArray(), [ 1722 utils.SetUpLockedPrototype(InternalArray, GlobalArray(), [
1726 "indexOf", getFunction("indexOf", ArrayIndexOf), 1723 "indexOf", getFunction("indexOf", ArrayIndexOf),
1727 "join", getFunction("join", ArrayJoin), 1724 "join", getFunction("join", ArrayJoin),
1728 "pop", getFunction("pop", ArrayPop), 1725 "pop", getFunction("pop", ArrayPop),
1729 "push", getFunction("push", ArrayPush), 1726 "push", getFunction("push", ArrayPush),
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1781 %InstallToContext([ 1778 %InstallToContext([
1782 "array_pop", ArrayPop, 1779 "array_pop", ArrayPop,
1783 "array_push", ArrayPush, 1780 "array_push", ArrayPush,
1784 "array_shift", ArrayShift, 1781 "array_shift", ArrayShift,
1785 "array_splice", ArraySplice, 1782 "array_splice", ArraySplice,
1786 "array_slice", ArraySlice, 1783 "array_slice", ArraySlice,
1787 "array_unshift", ArrayUnshift, 1784 "array_unshift", ArrayUnshift,
1788 ]); 1785 ]);
1789 1786
1790 }); 1787 });
OLDNEW
« no previous file with comments | « src/isolate-inl.h ('k') | src/js/arraybuffer.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698