Use array literals instead of array constructor in native javascript.
authoryangguo <yangguo@chromium.org>
Fri, 10 Apr 2015 20:51:33 +0000 (13:51 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 10 Apr 2015 20:51:38 +0000 (20:51 +0000)
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/1065863003

Cr-Commit-Position: refs/heads/master@{#27760}

25 files changed:
src/array-iterator.js
src/array.js
src/arraybuffer.js
src/collection-iterator.js
src/collection.js
src/date.js
src/harmony-array-includes.js
src/harmony-array.js
src/harmony-reflect.js
src/harmony-tostring.js
src/harmony-typedarray.js
src/json.js
src/math.js
src/messages.js
src/object-observe.js
src/regexp.js
src/snapshot/serialize.cc
src/string-iterator.js
src/string.js
src/symbol.js
src/third_party/fdlibm/fdlibm.js
src/typedarray.js
src/uri.js
src/v8natives.js
src/weak-collection.js

index 17d55f09b20ad8057e20d55acd16efb65bdaccf1..8e4f5c7bbc6bb78e51e31ade882173aa09b724d1 100644 (file)
@@ -106,9 +106,9 @@ function SetUpArrayIterator() {
   %FunctionSetPrototype(ArrayIterator, new $Object());
   %FunctionSetInstanceClassName(ArrayIterator, 'Array Iterator');
 
-  InstallFunctions(ArrayIterator.prototype, DONT_ENUM, $Array(
+  InstallFunctions(ArrayIterator.prototype, DONT_ENUM, [
     'next', ArrayIteratorNext
-  ));
+  ]);
   %FunctionSetName(ArrayIteratorIterator, '[Symbol.iterator]');
   %AddNamedProperty(ArrayIterator.prototype, symbolIterator,
                     ArrayIteratorIterator, DONT_ENUM);
@@ -121,11 +121,11 @@ SetUpArrayIterator();
 function ExtendArrayPrototype() {
   %CheckIsBootstrapping();
 
-  InstallFunctions($Array.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Array.prototype, DONT_ENUM, [
     // No 'values' since it breaks webcompat: http://crbug.com/409858
     'entries', ArrayEntries,
     'keys', ArrayKeys
-  ));
+  ]);
 
   %AddNamedProperty($Array.prototype, symbolIterator, ArrayValues, DONT_ENUM);
 }
index 806a3faaa947affbad46b4bc24f70175441678f9..68796dda353793be922f506869472be4cfebb572 100644 (file)
@@ -1521,9 +1521,9 @@ function SetUpArray() {
       DONT_ENUM | READ_ONLY);
 
   // Set up non-enumerable functions on the Array object.
-  InstallFunctions($Array, DONT_ENUM, $Array(
+  InstallFunctions($Array, DONT_ENUM, [
     "isArray", ArrayIsArray
-  ));
+  ]);
 
   var specialFunctions = %SpecialArrayFunctions();
 
@@ -1542,7 +1542,7 @@ function SetUpArray() {
   // set their names.
   // Manipulate the length of some of the functions to meet
   // expectations set by ECMA-262 or Mozilla.
-  InstallFunctions($Array.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Array.prototype, DONT_ENUM, [
     "toString", getFunction("toString", ArrayToString),
     "toLocaleString", getFunction("toLocaleString", ArrayToLocaleString),
     "join", getFunction("join", ArrayJoin),
@@ -1564,27 +1564,27 @@ function SetUpArray() {
     "lastIndexOf", getFunction("lastIndexOf", ArrayLastIndexOf, 1),
     "reduce", getFunction("reduce", ArrayReduce, 1),
     "reduceRight", getFunction("reduceRight", ArrayReduceRight, 1)
-  ));
+  ]);
 
   %FinishArrayPrototypeSetup($Array.prototype);
 
   // The internal Array prototype doesn't need to be fancy, since it's never
   // exposed to user code.
   // Adding only the functions that are actually used.
-  SetUpLockedPrototype(InternalArray, $Array(), $Array(
+  SetUpLockedPrototype(InternalArray, $Array(), [
     "concat", getFunction("concat", ArrayConcatJS),
     "indexOf", getFunction("indexOf", ArrayIndexOf),
     "join", getFunction("join", ArrayJoin),
     "pop", getFunction("pop", ArrayPop),
     "push", getFunction("push", ArrayPush),
     "splice", getFunction("splice", ArraySplice)
-  ));
+  ]);
 
-  SetUpLockedPrototype(InternalPackedArray, $Array(), $Array(
+  SetUpLockedPrototype(InternalPackedArray, $Array(), [
     "join", getFunction("join", ArrayJoin),
     "pop", getFunction("pop", ArrayPop),
     "push", getFunction("push", ArrayPush)
-  ));
+  ]);
 }
 
 SetUpArray();
index cbb51433bb68e7781aa98443019f88d64f8d9c49..e4d332b060cbc6d7be90d274a25e302898754078 100644 (file)
@@ -82,13 +82,13 @@ function SetUpArrayBuffer() {
 
   InstallGetter($ArrayBuffer.prototype, "byteLength", ArrayBufferGetByteLen);
 
-  InstallFunctions($ArrayBuffer, DONT_ENUM, $Array(
-      "isView", ArrayBufferIsViewJS
-  ));
+  InstallFunctions($ArrayBuffer, DONT_ENUM, [
+    "isView", ArrayBufferIsViewJS
+  ]);
 
-  InstallFunctions($ArrayBuffer.prototype, DONT_ENUM, $Array(
-      "slice", ArrayBufferSlice
-  ));
+  InstallFunctions($ArrayBuffer.prototype, DONT_ENUM, [
+    "slice", ArrayBufferSlice
+  ]);
 }
 
 SetUpArrayBuffer();
index c1a9a2767365cab880dbc1fa212026f69e1ed970..6f944f3c4ab55aa5a538b03af05f931a0e63b2c5 100644 (file)
@@ -70,9 +70,9 @@ function SetUpSetIterator() {
   %SetCode(SetIterator, SetIteratorConstructor);
   %FunctionSetPrototype(SetIterator, new $Object());
   %FunctionSetInstanceClassName(SetIterator, 'Set Iterator');
-  InstallFunctions(SetIterator.prototype, DONT_ENUM, $Array(
+  InstallFunctions(SetIterator.prototype, DONT_ENUM, [
     'next', SetIteratorNextJS
-  ));
+  ]);
 
   %FunctionSetName(SetIteratorSymbolIterator, '[Symbol.iterator]');
   %AddNamedProperty(SetIterator.prototype, symbolIterator,
@@ -87,11 +87,11 @@ SetUpSetIterator();
 function ExtendSetPrototype() {
   %CheckIsBootstrapping();
 
-  InstallFunctions($Set.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Set.prototype, DONT_ENUM, [
     'entries', SetEntries,
     'keys', SetValues,
     'values', SetValues
-  ));
+  ]);
 
   %AddNamedProperty($Set.prototype, symbolIterator, SetValues, DONT_ENUM);
 }
@@ -169,9 +169,9 @@ function SetUpMapIterator() {
   %SetCode(MapIterator, MapIteratorConstructor);
   %FunctionSetPrototype(MapIterator, new $Object());
   %FunctionSetInstanceClassName(MapIterator, 'Map Iterator');
-  InstallFunctions(MapIterator.prototype, DONT_ENUM, $Array(
+  InstallFunctions(MapIterator.prototype, DONT_ENUM, [
     'next', MapIteratorNextJS
-  ));
+  ]);
 
   %FunctionSetName(MapIteratorSymbolIterator, '[Symbol.iterator]');
   %AddNamedProperty(MapIterator.prototype, symbolIterator,
@@ -186,11 +186,11 @@ SetUpMapIterator();
 function ExtendMapPrototype() {
   %CheckIsBootstrapping();
 
-  InstallFunctions($Map.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Map.prototype, DONT_ENUM, [
     'entries', MapEntries,
     'keys', MapKeys,
     'values', MapValues
-  ));
+  ]);
 
   %AddNamedProperty($Map.prototype, symbolIterator, MapEntries, DONT_ENUM);
 }
index 7bb2393a7da32fb4a10251792b276589185e0100..7effba9f96e33838e4d6760ed3eab95d335e8168 100644 (file)
@@ -245,13 +245,13 @@ function SetForEach(f, receiver) {
 
 // Set up the non-enumerable functions on the Set prototype object.
 InstallGetter($Set.prototype, "size", SetGetSize);
-InstallFunctions($Set.prototype, DONT_ENUM, $Array(
+InstallFunctions($Set.prototype, DONT_ENUM, [
   "add", SetAdd,
   "has", SetHas,
   "delete", SetDelete,
   "clear", SetClearJS,
   "forEach", SetForEach
-));
+]);
 
 
 // -------------------------------------------------------------------
@@ -433,13 +433,13 @@ function MapForEach(f, receiver) {
 
 // Set up the non-enumerable functions on the Map prototype object.
 InstallGetter($Map.prototype, "size", MapGetSize);
-InstallFunctions($Map.prototype, DONT_ENUM, $Array(
+InstallFunctions($Map.prototype, DONT_ENUM, [
   "get", MapGet,
   "set", MapSet,
   "has", MapHas,
   "delete", MapDelete,
   "clear", MapClearJS,
   "forEach", MapForEach
-));
+]);
 
 })();
index eafe79850049efac1b5146f75d353de6bfd26fd5..877fc73d2cf66495c48d43c0d8d5dc854a85e601 100644 (file)
@@ -250,7 +250,7 @@ function DatePrintString(date) {
 // -------------------------------------------------------------------
 
 // Reused output buffer. Used when parsing date strings.
-var parse_buffer = $Array(8);
+var parse_buffer = new InternalArray(8);
 
 // ECMA 262 - 15.9.4.2
 function DateParse(string) {
@@ -765,18 +765,18 @@ function CreateDate(time) {
 %FunctionSetPrototype(GlobalDate, new GlobalDate(NAN));
 
 // Set up non-enumerable properties of the Date object itself.
-InstallFunctions(GlobalDate, DONT_ENUM, $Array(
+InstallFunctions(GlobalDate, DONT_ENUM, [
   "UTC", DateUTC,
   "parse", DateParse,
   "now", DateNow
-));
+]);
 
 // Set up non-enumerable constructor property of the Date prototype object.
 %AddNamedProperty(GlobalDate.prototype, "constructor", GlobalDate, DONT_ENUM);
 
 // Set up non-enumerable functions of the Date prototype object and
 // set their names.
-InstallFunctions(GlobalDate.prototype, DONT_ENUM, $Array(
+InstallFunctions(GlobalDate.prototype, DONT_ENUM, [
   "toString", DateToString,
   "toDateString", DateToDateString,
   "toTimeString", DateToTimeString,
@@ -823,7 +823,7 @@ InstallFunctions(GlobalDate.prototype, DONT_ENUM, $Array(
   "setYear", DateSetYear,
   "toISOString", DateToISOString,
   "toJSON", DateToJSON
-));
+]);
 
 // Expose to the global scope.
 $createDate = CreateDate;
index d1a779042135b4d586031ea091b39bc6196078bf..d6099bd739733e0690658fabf0f4557f58bc7dae 100644 (file)
@@ -53,9 +53,9 @@ function HarmonyArrayIncludesExtendArrayPrototype() {
   %FunctionSetLength(ArrayIncludes, 1);
 
   // Set up the non-enumerable functions on the Array prototype object.
-  InstallFunctions($Array.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Array.prototype, DONT_ENUM, [
     "includes", ArrayIncludes
-  ));
+  ]);
 }
 
 HarmonyArrayIncludesExtendArrayPrototype();
index 5152a557dd51c50e1527b0e4562da25b4666666b..cdd63be41611c1c17ad85eab60ede0fababa7868 100644 (file)
@@ -211,10 +211,10 @@ function ArrayOf() {
 function HarmonyArrayExtendSymbolPrototype() {
   %CheckIsBootstrapping();
 
-  InstallConstants(global.Symbol, $Array(
+  InstallConstants(global.Symbol, [
     // TODO(dslomov, caitp): Move to symbol.js when shipping
-   "isConcatSpreadable", symbolIsConcatSpreadable
-  ));
+    "isConcatSpreadable", symbolIsConcatSpreadable
+  ]);
 }
 
 HarmonyArrayExtendSymbolPrototype();
@@ -225,17 +225,17 @@ function HarmonyArrayExtendArrayPrototype() {
   %FunctionSetLength(ArrayFrom, 1);
 
   // Set up non-enumerable functions on the Array object.
-  InstallFunctions($Array, DONT_ENUM, $Array(
+  InstallFunctions($Array, DONT_ENUM, [
     "from", ArrayFrom,
     "of", ArrayOf
-  ));
+  ]);
 
   // Set up the non-enumerable functions on the Array prototype object.
-  InstallFunctions($Array.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Array.prototype, DONT_ENUM, [
     "find", ArrayFind,
     "findIndex", ArrayFindIndex,
     "fill", ArrayFill
-  ));
+  ]);
 }
 
 HarmonyArrayExtendArrayPrototype();
index f900d70f29ee1165f2622fb794b35bfc52bc0ed4..b9ea45fcc9c99d571ca76451a8b2f31d57aa5226 100644 (file)
@@ -9,10 +9,10 @@ var $Reflect = global.Reflect;
 function SetUpReflect() {
   %CheckIsBootstrapping();
 
-  InstallFunctions($Reflect, DONT_ENUM, $Array(
-   "apply", ReflectApply,
-   "construct", ReflectConstruct
-  ));
+  InstallFunctions($Reflect, DONT_ENUM, [
+    "apply", ReflectApply,
+    "construct", ReflectConstruct
+  ]);
 }
 
 SetUpReflect();
index ccd02ca6c9e3cd8b97288a0723d2c38ef50475e3..89a314c5081e10a5c84512a058921a947e80a29b 100644 (file)
@@ -7,10 +7,10 @@
 function HarmonyToStringExtendSymbolPrototype() {
   %CheckIsBootstrapping();
 
-  InstallConstants(global.Symbol, $Array(
-    // TODO(dslomov, caitp): Move to symbol.js when shipping
-   "toStringTag", symbolToStringTag
-  ));
+  InstallConstants(global.Symbol, [
+     // TODO(dslomov, caitp): Move to symbol.js when shipping
+     "toStringTag", symbolToStringTag
+  ]);
 }
 
 HarmonyToStringExtendSymbolPrototype();
index c2eb452af378ca1b2b240653a2de04e06777df16..d692a5f1bc5cdca4ba5a6d265d72fc0a5165902a 100644 (file)
@@ -79,14 +79,14 @@ macro EXTEND_TYPED_ARRAY(ARRAY_ID, NAME, ELEMENT_SIZE)
   %CheckIsBootstrapping();
 
   // Set up non-enumerable functions on the object.
-  InstallFunctions(global.NAME, DONT_ENUM | DONT_DELETE | READ_ONLY, $Array(
+  InstallFunctions(global.NAME, DONT_ENUM | DONT_DELETE | READ_ONLY, [
     "of", NAMEOf
-  ));
+  ]);
 
   // Set up non-enumerable functions on the prototype object.
-  InstallFunctions(global.NAME.prototype, DONT_ENUM, $Array(
+  InstallFunctions(global.NAME.prototype, DONT_ENUM, [
     "forEach", NAMEForEach
-  ));
+  ]);
 endmacro
 
   TYPED_ARRAYS(EXTEND_TYPED_ARRAY)
index 90ffa25131d6a2b79d9dbfd0f77fc5c100e6d318..2d40f7b5578534c204785f5d4fc6c6a33bb9a67c 100644 (file)
@@ -49,7 +49,7 @@ function JSONParse(text, reviver) {
 
 function SerializeArray(value, replacer, stack, indent, gap) {
   if (!%PushIfAbsent(stack, value)) {
-    throw MakeTypeError('circular_structure', $Array());
+    throw MakeTypeError('circular_structure', []);
   }
   var stepback = indent;
   indent += gap;
@@ -79,7 +79,7 @@ function SerializeArray(value, replacer, stack, indent, gap) {
 
 function SerializeObject(value, replacer, stack, indent, gap) {
   if (!%PushIfAbsent(stack, value)) {
-    throw MakeTypeError('circular_structure', $Array());
+    throw MakeTypeError('circular_structure', []);
   }
   var stepback = indent;
   indent += gap;
@@ -223,10 +223,10 @@ function SetUpJSON() {
   %AddNamedProperty($JSON, symbolToStringTag, "JSON", READ_ONLY | DONT_ENUM);
 
   // Set up non-enumerable properties of the JSON object.
-  InstallFunctions($JSON, DONT_ENUM, $Array(
+  InstallFunctions($JSON, DONT_ENUM, [
     "parse", JSONParse,
     "stringify", JSONStringify
-  ));
+  ]);
 }
 
 SetUpJSON();
index 20f36e6bb1ae7cd4dec997a941a45baa25a9446a..1a5a1056f83c9f88d5a3e2c0fbca920de76ff990 100644 (file)
@@ -17,7 +17,6 @@ var $min;
 %CheckIsBootstrapping();
 
 var GlobalObject = global.Object;
-var GlobalArray = global.Array;
 
 //-------------------------------------------------------------------
 
@@ -295,7 +294,7 @@ var Math = new MathConstructor();
 %AddNamedProperty(Math, symbolToStringTag, "Math", READ_ONLY | DONT_ENUM);
 
 // Set up math constants.
-InstallConstants(Math, GlobalArray(
+InstallConstants(Math, [
   // ECMA-262, section 15.8.1.1.
   "E", 2.7182818284590452354,
   // ECMA-262, section 15.8.1.2.
@@ -308,11 +307,11 @@ InstallConstants(Math, GlobalArray(
   "PI", 3.1415926535897932,
   "SQRT1_2", 0.7071067811865476,
   "SQRT2", 1.4142135623730951
-));
+]);
 
 // Set up non-enumerable functions of the Math object and
 // set their names.
-InstallFunctions(Math, DONT_ENUM, GlobalArray(
+InstallFunctions(Math, DONT_ENUM, [
   "random", MathRandom,
   "abs", MathAbs,
   "acos", MathAcosJS,
@@ -339,7 +338,7 @@ InstallFunctions(Math, DONT_ENUM, GlobalArray(
   "fround", MathFroundJS,
   "clz32", MathClz32JS,
   "cbrt", MathCbrt
-));
+]);
 
 %SetInlineBuiltinFlag(MathAbs);
 %SetInlineBuiltinFlag(MathAcosJS);
index 53da883476badd0788a40344826e3eb60590e06f..3f5b82d6bf9b3e759532a7f685799c4bf4ba07c9 100644 (file)
@@ -615,10 +615,15 @@ function ScriptNameOrSourceURL() {
 }
 
 
-SetUpLockedPrototype(Script,
-  $Array("source", "name", "source_url", "source_mapping_url", "line_ends",
-         "line_offset", "column_offset"),
-  $Array(
+SetUpLockedPrototype(Script, [
+    "source",
+    "name",
+    "source_url",
+    "source_mapping_url",
+    "line_ends",
+    "line_offset",
+    "column_offset"
+  ], [
     "lineFromPosition", ScriptLineFromPosition,
     "locationFromPosition", ScriptLocationFromPosition,
     "locationFromLine", ScriptLocationFromLine,
@@ -626,7 +631,7 @@ SetUpLockedPrototype(Script,
     "sourceLine", ScriptSourceLine,
     "lineCount", ScriptLineCount,
     "nameOrSourceURL", ScriptNameOrSourceURL
-  )
+  ]
 );
 
 
@@ -675,10 +680,8 @@ function SourceLocationSourceText() {
 
 
 SetUpLockedPrototype(SourceLocation,
-  $Array("script", "position", "line", "column", "start", "end"),
-  $Array(
-    "sourceText", SourceLocationSourceText
- )
+  ["script", "position", "line", "column", "start", "end"],
+  ["sourceText", SourceLocationSourceText]
 );
 
 
@@ -721,8 +724,8 @@ function SourceSliceSourceText() {
 }
 
 SetUpLockedPrototype(SourceSlice,
-  $Array("script", "from_line", "to_line", "from_position", "to_position"),
-  $Array("sourceText", SourceSliceSourceText)
+  ["script", "from_line", "to_line", "from_position", "to_position"],
+  ["sourceText", SourceSliceSourceText]
 );
 
 
@@ -953,7 +956,7 @@ function CallSiteToString() {
   return line;
 }
 
-SetUpLockedPrototype(CallSite, $Array("receiver", "fun", "pos"), $Array(
+SetUpLockedPrototype(CallSite, ["receiver", "fun", "pos"], [
   "getThis", CallSiteGetThis,
   "getTypeName", CallSiteGetTypeName,
   "isToplevel", CallSiteIsToplevel,
@@ -970,7 +973,7 @@ SetUpLockedPrototype(CallSite, $Array("receiver", "fun", "pos"), $Array(
   "getPosition", CallSiteGetPosition,
   "isConstructor", CallSiteIsConstructor,
   "toString", CallSiteToString
-));
+]);
 
 
 function FormatEvalOrigin(script) {
index 3ba917ecda9e6c7d4d75148f83b9775130aacbef..1d23085fd362af21d0ea181016c776b75a47cdec 100644 (file)
@@ -594,20 +594,20 @@ function ObserveMicrotaskRunner() {
 
 function SetupObjectObserve() {
   %CheckIsBootstrapping();
-  InstallFunctions($Object, DONT_ENUM, $Array(
+  InstallFunctions($Object, DONT_ENUM, [
     "deliverChangeRecords", ObjectDeliverChangeRecords,
     "getNotifier", ObjectGetNotifier,
     "observe", ObjectObserve,
     "unobserve", ObjectUnobserve
-  ));
-  InstallFunctions($Array, DONT_ENUM, $Array(
+  ]);
+  InstallFunctions($Array, DONT_ENUM, [
     "observe", ArrayObserve,
     "unobserve", ArrayUnobserve
-  ));
-  InstallFunctions(notifierPrototype, DONT_ENUM, $Array(
+  ]);
+  InstallFunctions(notifierPrototype, DONT_ENUM, [
     "notify", ObjectNotifierNotify,
     "performChange", ObjectNotifierPerformChange
-  ));
+  ]);
 }
 
 SetupObjectObserve();
index 0f49c3f80ebef2689550642f05d9be32a2e90cd8..a344b31f8a6c26e5f8db48d1bdf3f3d0e98bc25a 100644 (file)
@@ -14,7 +14,6 @@ var harmony_unicode_regexps = false;
 %CheckIsBootstrapping();
 
 var GlobalRegExp = global.RegExp;
-var GlobalArray = global.Array;
 
 // Property of the builtins object for recording the result of the last
 // regexp match.  The property $regexpLastMatchInfo includes the matchIndices
@@ -364,12 +363,12 @@ function RegExpMakeCaptureGetter(n) {
     GlobalRegExp.prototype, 'constructor', GlobalRegExp, DONT_ENUM);
 %SetCode(GlobalRegExp, RegExpConstructor);
 
-InstallFunctions(GlobalRegExp.prototype, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalRegExp.prototype, DONT_ENUM, [
   "exec", RegExpExecJS,
   "test", RegExpTest,
   "toString", RegExpToString,
   "compile", RegExpCompileJS
-));
+]);
 
 // The length of compile is 1 in SpiderMonkey.
 %FunctionSetLength(GlobalRegExp.prototype.compile, 1);
index c7de970361ad83216ddef6bdf880d0e66fa0d562..0fcedcd033191f8ffc5992a0d97c769363e547c9 100644 (file)
@@ -1576,6 +1576,12 @@ void PartialSerializer::SerializeObject(HeapObject* obj, HowToCode how_to_code,
 
   FlushSkip(skip);
 
+  // Clear literal boilerplates.
+  if (obj->IsJSFunction() && !JSFunction::cast(obj)->shared()->bound()) {
+    FixedArray* literals = JSFunction::cast(obj)->literals();
+    for (int i = 0; i < literals->length(); i++) literals->set_undefined(i);
+  }
+
   // Object has not yet been serialized.  Serialize it here.
   ObjectSerializer serializer(this, obj, sink_, how_to_code, where_to_point);
   serializer.Serialize();
index df31c130b8c8a7ecb994c0efd958194814f1b4fb..8d72b81e8be159371546362a159eaf87c4c50f1e 100644 (file)
@@ -8,7 +8,6 @@
 
 %CheckIsBootstrapping();
 
-var GlobalArray = global.Array;
 var GlobalObject = global.Object;
 var GlobalString = global.String;
 
@@ -89,9 +88,9 @@ function StringPrototypeIterator() {
 %FunctionSetPrototype(StringIterator, new GlobalObject());
 %FunctionSetInstanceClassName(StringIterator, 'String Iterator');
 
-InstallFunctions(StringIterator.prototype, DONT_ENUM, GlobalArray(
+InstallFunctions(StringIterator.prototype, DONT_ENUM, [
   'next', StringIteratorNext
-));
+]);
 %FunctionSetName(StringIteratorIterator, '[Symbol.iterator]');
 %AddNamedProperty(StringIterator.prototype, symbolIterator,
                   StringIteratorIterator, DONT_ENUM);
index 0f29cd1dc147ca7c8fc6b24c4d965af32754a734..030d507af3a158453534e26250d55389908b3c24 100644 (file)
@@ -10,7 +10,6 @@ var $stringSubstring;
 
 %CheckIsBootstrapping();
 
-var GlobalArray = global.Array;
 var GlobalRegExp = global.RegExp;
 var GlobalString = global.String;
 
@@ -1125,14 +1124,14 @@ function StringRaw(callSite) {
     GlobalString.prototype, "constructor", GlobalString, DONT_ENUM);
 
 // Set up the non-enumerable functions on the String object.
-InstallFunctions(GlobalString, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalString, DONT_ENUM, [
   "fromCharCode", StringFromCharCode,
   "fromCodePoint", StringFromCodePoint,
   "raw", StringRaw
-));
+]);
 
 // Set up the non-enumerable functions on the String prototype object.
-InstallFunctions(GlobalString.prototype, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalString.prototype, DONT_ENUM, [
   "valueOf", StringValueOf,
   "toString", StringToString,
   "charAt", StringCharAtJS,
@@ -1175,7 +1174,7 @@ InstallFunctions(GlobalString.prototype, DONT_ENUM, GlobalArray(
   "strike", StringStrike,
   "sub", StringSub,
   "sup", StringSup
-));
+]);
 
 $stringCharAt = StringCharAtJS;
 $stringIndexOf = StringIndexOfJS;
index 7a80815229b8f83e27f639b8084b9540f9e96776..4ea77979c237c85ef15cb663be18ac4cfa127746 100644 (file)
@@ -18,7 +18,6 @@ var $symbolToString;
 
 %CheckIsBootstrapping();
 
-var GlobalArray = global.Array;
 var GlobalObject = global.Object;
 var GlobalSymbol = global.Symbol;
 
@@ -84,7 +83,7 @@ function ObjectGetOwnPropertySymbols(obj) {
 %SetCode(GlobalSymbol, SymbolConstructor);
 %FunctionSetPrototype(GlobalSymbol, new GlobalObject());
 
-InstallConstants(GlobalSymbol, GlobalArray(
+InstallConstants(GlobalSymbol, [
   // TODO(rossberg): expose when implemented.
   // "hasInstance", symbolHasInstance,
   // "isConcatSpreadable", symbolIsConcatSpreadable,
@@ -94,26 +93,26 @@ InstallConstants(GlobalSymbol, GlobalArray(
   // Move here when shipping
   // "toStringTag", symbolToStringTag,
   "unscopables", symbolUnscopables
-));
+]);
 
-InstallFunctions(GlobalSymbol, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalSymbol, DONT_ENUM, [
   "for", SymbolFor,
   "keyFor", SymbolKeyFor
-));
+]);
 
 %AddNamedProperty(
     GlobalSymbol.prototype, "constructor", GlobalSymbol, DONT_ENUM);
 %AddNamedProperty(
     GlobalSymbol.prototype, symbolToStringTag, "Symbol", DONT_ENUM | READ_ONLY);
 
-InstallFunctions(GlobalSymbol.prototype, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalSymbol.prototype, DONT_ENUM, [
   "toString", SymbolToString,
   "valueOf", SymbolValueOf
-));
+]);
 
-InstallFunctions(GlobalObject, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalObject, DONT_ENUM, [
   "getOwnPropertySymbols", ObjectGetOwnPropertySymbols
-));
+]);
 
 $symbolToString = SymbolToString;
 
index e0373922c3674e6a7029f593b56112b03b3013c5..8560b5a004e422d81051f8c178557a3904043d04 100644 (file)
@@ -33,7 +33,6 @@ var rempio2result;
 %CheckIsBootstrapping();
 
 var GlobalMath = global.Math;
-var GlobalArray = global.Array;
 
 //-------------------------------------------------------------------
 
@@ -887,12 +886,12 @@ function MathLog10(x) {
   if (hx >= 0x7ff00000) return x;
 
   k += (hx >> 20) - 1023;
-  i = (k & 0x80000000) >> 31;
+  var i = (k & 0x80000000) >> 31;
   hx = (hx & 0x000fffff) | ((0x3ff - i) << 20);
-  y = k + i;
+  var y = k + i;
   x = %_ConstructDouble(hx, lx);
 
-  z = y * LOG10_2LO + IVLN10 * %_MathLogRT(x);
+  var z = y * LOG10_2LO + IVLN10 * %_MathLogRT(x);
   return z + y * LOG10_2HI;
 }
 
@@ -1013,7 +1012,7 @@ function MathLog2(x) {
 
 //-------------------------------------------------------------------
 
-InstallFunctions(GlobalMath, DONT_ENUM, GlobalArray(
+InstallFunctions(GlobalMath, DONT_ENUM, [
   "cos", MathCos,
   "sin", MathSin,
   "tan", MathTan,
@@ -1023,7 +1022,7 @@ InstallFunctions(GlobalMath, DONT_ENUM, GlobalArray(
   "log2", MathLog2,
   "log1p", MathLog1p,
   "expm1", MathExpm1
-));
+]);
 
 %SetInlineBuiltinFlag(MathSin);
 %SetInlineBuiltinFlag(MathCos);
index ac7e6c8520e1674ed8e443c0f659df37e746bc5b..1faa051cce7bda0b1dc5b4eeaaa43f7ccacabbea 100644 (file)
@@ -322,10 +322,10 @@ macro SETUP_TYPED_ARRAY(ARRAY_ID, NAME, ELEMENT_SIZE)
       DONT_ENUM | DONT_DELETE);
   InstallGetter(global.NAME.prototype, symbolToStringTag,
                 TypedArrayGetToStringTag);
-  InstallFunctions(global.NAME.prototype, DONT_ENUM, $Array(
-        "subarray", NAMESubArray,
-        "set", TypedArraySet
-  ));
+  InstallFunctions(global.NAME.prototype, DONT_ENUM, [
+    "subarray", NAMESubArray,
+    "set", TypedArraySet
+  ]);
 endmacro
 
 TYPED_ARRAYS(SETUP_TYPED_ARRAY)
@@ -455,31 +455,31 @@ function SetupDataView() {
   InstallGetter($DataView.prototype, "byteOffset", DataViewGetByteOffset);
   InstallGetter($DataView.prototype, "byteLength", DataViewGetByteLength);
 
-  InstallFunctions($DataView.prototype, DONT_ENUM, $Array(
-      "getInt8", DataViewGetInt8JS,
-      "setInt8", DataViewSetInt8JS,
+  InstallFunctions($DataView.prototype, DONT_ENUM, [
+    "getInt8", DataViewGetInt8JS,
+    "setInt8", DataViewSetInt8JS,
 
-      "getUint8", DataViewGetUint8JS,
-      "setUint8", DataViewSetUint8JS,
+    "getUint8", DataViewGetUint8JS,
+    "setUint8", DataViewSetUint8JS,
 
-      "getInt16", DataViewGetInt16JS,
-      "setInt16", DataViewSetInt16JS,
+    "getInt16", DataViewGetInt16JS,
+    "setInt16", DataViewSetInt16JS,
 
-      "getUint16", DataViewGetUint16JS,
-      "setUint16", DataViewSetUint16JS,
+    "getUint16", DataViewGetUint16JS,
+    "setUint16", DataViewSetUint16JS,
 
-      "getInt32", DataViewGetInt32JS,
-      "setInt32", DataViewSetInt32JS,
+    "getInt32", DataViewGetInt32JS,
+    "setInt32", DataViewSetInt32JS,
 
-      "getUint32", DataViewGetUint32JS,
-      "setUint32", DataViewSetUint32JS,
+    "getUint32", DataViewGetUint32JS,
+    "setUint32", DataViewSetUint32JS,
 
-      "getFloat32", DataViewGetFloat32JS,
-      "setFloat32", DataViewSetFloat32JS,
+    "getFloat32", DataViewGetFloat32JS,
+    "setFloat32", DataViewSetFloat32JS,
 
-      "getFloat64", DataViewGetFloat64JS,
-      "setFloat64", DataViewSetFloat64JS
-  ));
+    "getFloat64", DataViewGetFloat64JS,
+    "setFloat64", DataViewSetFloat64JS
+  ]);
 }
 
 SetupDataView();
index 420078277eea6f5ebd8f5ece510b6c5681399a3d..f693ff2710f6260d61efc7445f679e923b695b2f 100644 (file)
@@ -376,13 +376,13 @@ function URIEncodeComponent(component) {
 
 // Set up non-enumerable URI functions on the global object and set
 // their names.
-InstallFunctions(global, DONT_ENUM, GlobalArray(
-    "escape", URIEscapeJS,
-    "unescape", URIUnescapeJS,
-    "decodeURI", URIDecode,
-    "decodeURIComponent", URIDecodeComponent,
-    "encodeURI", URIEncode,
-    "encodeURIComponent", URIEncodeComponent
-));
+InstallFunctions(global, DONT_ENUM, [
+  "escape", URIEscapeJS,
+  "unescape", URIUnescapeJS,
+  "decodeURI", URIDecode,
+  "decodeURIComponent", URIDecodeComponent,
+  "encodeURI", URIEncode,
+  "encodeURIComponent", URIEncodeComponent
+]);
 
 })();
index 01644217ea05c433db83fb1bd66d3e4c61cb283e..9b0a76cc0e192bc2f3b733c89e183dac7debe6ee 100644 (file)
@@ -201,13 +201,13 @@ function SetUpGlobal() {
   %AddNamedProperty(global, "undefined", UNDEFINED, attributes);
 
   // Set up non-enumerable function on the global object.
-  InstallFunctions(global, DONT_ENUM, $Array(
+  InstallFunctions(global, DONT_ENUM, [
     "isNaN", GlobalIsNaN,
     "isFinite", GlobalIsFinite,
     "parseInt", GlobalParseInt,
     "parseFloat", GlobalParseFloat,
     "eval", GlobalEval
-  ));
+  ]);
 }
 
 SetUpGlobal();
@@ -508,84 +508,85 @@ function PropertyDescriptor() {
   this.hasSetter_ = false;
 }
 
-SetUpLockedPrototype(PropertyDescriptor, $Array(
-    "value_",
-    "hasValue_",
-    "writable_",
-    "hasWritable_",
-    "enumerable_",
-    "hasEnumerable_",
-    "configurable_",
-    "hasConfigurable_",
-    "get_",
-    "hasGetter_",
-    "set_",
-    "hasSetter_"
-  ), $Array(
-    "toString", function PropertyDescriptor_ToString() {
-      return "[object PropertyDescriptor]";
-    },
-    "setValue", function PropertyDescriptor_SetValue(value) {
-      this.value_ = value;
-      this.hasValue_ = true;
-    },
-    "getValue", function PropertyDescriptor_GetValue() {
-      return this.value_;
-    },
-    "hasValue", function PropertyDescriptor_HasValue() {
-      return this.hasValue_;
-    },
-    "setEnumerable", function PropertyDescriptor_SetEnumerable(enumerable) {
-      this.enumerable_ = enumerable;
-        this.hasEnumerable_ = true;
-    },
-    "isEnumerable", function PropertyDescriptor_IsEnumerable() {
-      return this.enumerable_;
-    },
-    "hasEnumerable", function PropertyDescriptor_HasEnumerable() {
-      return this.hasEnumerable_;
-    },
-    "setWritable", function PropertyDescriptor_SetWritable(writable) {
-      this.writable_ = writable;
-      this.hasWritable_ = true;
-    },
-    "isWritable", function PropertyDescriptor_IsWritable() {
-      return this.writable_;
-    },
-    "hasWritable", function PropertyDescriptor_HasWritable() {
-      return this.hasWritable_;
-    },
-    "setConfigurable",
-    function PropertyDescriptor_SetConfigurable(configurable) {
-      this.configurable_ = configurable;
-      this.hasConfigurable_ = true;
-    },
-    "hasConfigurable", function PropertyDescriptor_HasConfigurable() {
-      return this.hasConfigurable_;
-    },
-    "isConfigurable", function PropertyDescriptor_IsConfigurable() {
-      return this.configurable_;
-    },
-    "setGet", function PropertyDescriptor_SetGetter(get) {
-      this.get_ = get;
-      this.hasGetter_ = true;
-    },
-    "getGet", function PropertyDescriptor_GetGetter() {
-      return this.get_;
-    },
-    "hasGetter", function PropertyDescriptor_HasGetter() {
-      return this.hasGetter_;
-    },
-    "setSet", function PropertyDescriptor_SetSetter(set) {
-      this.set_ = set;
-      this.hasSetter_ = true;
-    },
-    "getSet", function PropertyDescriptor_GetSetter() {
-      return this.set_;
-    },
-    "hasSetter", function PropertyDescriptor_HasSetter() {
-      return this.hasSetter_;
-  }));
+SetUpLockedPrototype(PropertyDescriptor, [
+  "value_",
+  "hasValue_",
+  "writable_",
+  "hasWritable_",
+  "enumerable_",
+  "hasEnumerable_",
+  "configurable_",
+  "hasConfigurable_",
+  "get_",
+  "hasGetter_",
+  "set_",
+  "hasSetter_"
+], [
+  "toString", function PropertyDescriptor_ToString() {
+    return "[object PropertyDescriptor]";
+  },
+  "setValue", function PropertyDescriptor_SetValue(value) {
+    this.value_ = value;
+    this.hasValue_ = true;
+  },
+  "getValue", function PropertyDescriptor_GetValue() {
+    return this.value_;
+  },
+  "hasValue", function PropertyDescriptor_HasValue() {
+    return this.hasValue_;
+  },
+  "setEnumerable", function PropertyDescriptor_SetEnumerable(enumerable) {
+    this.enumerable_ = enumerable;
+      this.hasEnumerable_ = true;
+  },
+  "isEnumerable", function PropertyDescriptor_IsEnumerable() {
+    return this.enumerable_;
+  },
+  "hasEnumerable", function PropertyDescriptor_HasEnumerable() {
+    return this.hasEnumerable_;
+  },
+  "setWritable", function PropertyDescriptor_SetWritable(writable) {
+    this.writable_ = writable;
+    this.hasWritable_ = true;
+  },
+  "isWritable", function PropertyDescriptor_IsWritable() {
+    return this.writable_;
+  },
+  "hasWritable", function PropertyDescriptor_HasWritable() {
+    return this.hasWritable_;
+  },
+  "setConfigurable",
+  function PropertyDescriptor_SetConfigurable(configurable) {
+    this.configurable_ = configurable;
+    this.hasConfigurable_ = true;
+  },
+  "hasConfigurable", function PropertyDescriptor_HasConfigurable() {
+    return this.hasConfigurable_;
+  },
+  "isConfigurable", function PropertyDescriptor_IsConfigurable() {
+    return this.configurable_;
+  },
+  "setGet", function PropertyDescriptor_SetGetter(get) {
+    this.get_ = get;
+    this.hasGetter_ = true;
+  },
+  "getGet", function PropertyDescriptor_GetGetter() {
+    return this.get_;
+  },
+  "hasGetter", function PropertyDescriptor_HasGetter() {
+    return this.hasGetter_;
+  },
+  "setSet", function PropertyDescriptor_SetSetter(set) {
+    this.set_ = set;
+    this.hasSetter_ = true;
+  },
+  "getSet", function PropertyDescriptor_GetSetter() {
+    return this.set_;
+  },
+  "hasSetter", function PropertyDescriptor_HasSetter() {
+    return this.hasSetter_;
+  }
+]);
 
 
 // Converts an array returned from Runtime_GetOwnProperty to an actual
@@ -1429,7 +1430,7 @@ function SetUpObject() {
   %AddNamedProperty($Object.prototype, "constructor", $Object, DONT_ENUM);
 
   // Set up non-enumerable functions on the Object.prototype object.
-  InstallFunctions($Object.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Object.prototype, DONT_ENUM, [
     "toString", ObjectToString,
     "toLocaleString", ObjectToLocaleString,
     "valueOf", ObjectValueOf,
@@ -1440,12 +1441,12 @@ function SetUpObject() {
     "__lookupGetter__", ObjectLookupGetter,
     "__defineSetter__", ObjectDefineSetter,
     "__lookupSetter__", ObjectLookupSetter
-  ));
+  ]);
   InstallGetterSetter($Object.prototype, "__proto__",
                       ObjectGetProto, ObjectSetProto);
 
   // Set up non-enumerable functions in the Object object.
-  InstallFunctions($Object, DONT_ENUM, $Array(
+  InstallFunctions($Object, DONT_ENUM, [
     "keys", ObjectKeys,
     "create", ObjectCreate,
     "defineProperty", ObjectDefineProperty,
@@ -1464,7 +1465,7 @@ function SetUpObject() {
     "seal", ObjectSealJS
     // deliverChangeRecords, getNotifier, observe and unobserve are added
     // in object-observe.js.
-  ));
+  ]);
 }
 
 SetUpObject();
@@ -1515,10 +1516,10 @@ function SetUpBoolean () {
   %FunctionSetPrototype($Boolean, new $Object());
   %AddNamedProperty($Boolean.prototype, "constructor", $Boolean, DONT_ENUM);
 
-  InstallFunctions($Boolean.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Boolean.prototype, DONT_ENUM, [
     "toString", BooleanToString,
     "valueOf", BooleanValueOf
-  ));
+  ]);
 }
 
 SetUpBoolean();
@@ -1697,44 +1698,44 @@ function SetUpNumber() {
   // Set up the constructor property on the Number prototype object.
   %AddNamedProperty($Number.prototype, "constructor", $Number, DONT_ENUM);
 
-  InstallConstants($Number, $Array(
-      // ECMA-262 section 15.7.3.1.
-      "MAX_VALUE", 1.7976931348623157e+308,
-      // ECMA-262 section 15.7.3.2.
-      "MIN_VALUE", 5e-324,
-      // ECMA-262 section 15.7.3.3.
-      "NaN", NAN,
-      // ECMA-262 section 15.7.3.4.
-      "NEGATIVE_INFINITY", -INFINITY,
-      // ECMA-262 section 15.7.3.5.
-      "POSITIVE_INFINITY", INFINITY,
-
-      // --- Harmony constants (no spec refs until settled.)
-
-      "MAX_SAFE_INTEGER", %_MathPow(2, 53) - 1,
-      "MIN_SAFE_INTEGER", -%_MathPow(2, 53) + 1,
-      "EPSILON", %_MathPow(2, -52)
-  ));
+  InstallConstants($Number, [
+    // ECMA-262 section 15.7.3.1.
+    "MAX_VALUE", 1.7976931348623157e+308,
+    // ECMA-262 section 15.7.3.2.
+    "MIN_VALUE", 5e-324,
+    // ECMA-262 section 15.7.3.3.
+    "NaN", NAN,
+    // ECMA-262 section 15.7.3.4.
+    "NEGATIVE_INFINITY", -INFINITY,
+    // ECMA-262 section 15.7.3.5.
+    "POSITIVE_INFINITY", INFINITY,
+
+    // --- Harmony constants (no spec refs until settled.)
+
+    "MAX_SAFE_INTEGER", %_MathPow(2, 53) - 1,
+    "MIN_SAFE_INTEGER", -%_MathPow(2, 53) + 1,
+    "EPSILON", %_MathPow(2, -52)
+  ]);
 
   // Set up non-enumerable functions on the Number prototype object.
-  InstallFunctions($Number.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Number.prototype, DONT_ENUM, [
     "toString", NumberToStringJS,
     "toLocaleString", NumberToLocaleString,
     "valueOf", NumberValueOf,
     "toFixed", NumberToFixedJS,
     "toExponential", NumberToExponentialJS,
     "toPrecision", NumberToPrecisionJS
-  ));
+  ]);
 
   // Harmony Number constructor additions
-  InstallFunctions($Number, DONT_ENUM, $Array(
+  InstallFunctions($Number, DONT_ENUM, [
     "isFinite", NumberIsFinite,
     "isInteger", NumberIsInteger,
     "isNaN", NumberIsNaN,
     "isSafeInteger", NumberIsSafeInteger,
     "parseInt", GlobalParseInt,
     "parseFloat", GlobalParseFloat
-  ));
+  ]);
 
   %SetInlineBuiltinFlag(NumberIsNaN);
 }
@@ -1893,10 +1894,10 @@ function SetUpFunction() {
   %SetCode($Function, FunctionConstructor);
   %AddNamedProperty($Function.prototype, "constructor", $Function, DONT_ENUM);
 
-  InstallFunctions($Function.prototype, DONT_ENUM, $Array(
+  InstallFunctions($Function.prototype, DONT_ENUM, [
     "bind", FunctionBind,
     "toString", FunctionToString
-  ));
+  ]);
 }
 
 SetUpFunction();
index 776043d9dcdebb411cb39f92e899867f91f9cdda..d6d883756332cb484e5a6c391a1e6ea65ef01438 100644 (file)
@@ -91,12 +91,12 @@ function SetUpWeakMap() {
       $WeakMap.prototype, symbolToStringTag, "WeakMap", DONT_ENUM | READ_ONLY);
 
   // Set up the non-enumerable functions on the WeakMap prototype object.
-  InstallFunctions($WeakMap.prototype, DONT_ENUM, $Array(
+  InstallFunctions($WeakMap.prototype, DONT_ENUM, [
     "get", WeakMapGet,
     "set", WeakMapSet,
     "has", WeakMapHas,
     "delete", WeakMapDelete
-  ));
+  ]);
 }
 
 SetUpWeakMap();
@@ -168,11 +168,11 @@ function SetUpWeakSet() {
       $WeakSet.prototype, symbolToStringTag, "WeakSet", DONT_ENUM | READ_ONLY);
 
   // Set up the non-enumerable functions on the WeakSet prototype object.
-  InstallFunctions($WeakSet.prototype, DONT_ENUM, $Array(
+  InstallFunctions($WeakSet.prototype, DONT_ENUM, [
     "add", WeakSetAdd,
     "has", WeakSetHas,
     "delete", WeakSetDelete
-  ));
+  ]);
 }
 
 SetUpWeakSet();