Revert of Wrap runtime.js in a function. (patchset #2 id:20001 of https://codereview...
authormachenbach <machenbach@chromium.org>
Wed, 6 May 2015 20:03:03 +0000 (13:03 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 6 May 2015 20:03:11 +0000 (20:03 +0000)
Reason for revert:
[Sheriff] Breaks nosnap:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/2872

Original issue's description:
> Wrap runtime.js in a function.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/65c56d49b2d671ac9e379de726bff3eb03a508c1
> Cr-Commit-Position: refs/heads/master@{#28275}

TBR=jkummerow@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

30 files changed:
src/array-iterator.js
src/array.js
src/arraybuffer.js
src/ast-value-factory.h
src/bootstrapper.cc
src/collection.js
src/date.js
src/debug-debugger.js
src/harmony-array-includes.js
src/harmony-array.js
src/harmony-regexp.js
src/harmony-typedarray.js
src/i18n.js
src/json.js
src/macros.py
src/math.js
src/messages.js
src/mirror-debugger.js
src/object-observe.js
src/objects.h
src/regexp.js
src/runtime.js
src/string-iterator.js
src/string.js
src/symbol.js
src/typedarray.js
src/uri.js
src/v8natives.js
test/cctest/compiler/test-run-jscalls.cc
test/mjsunit/samevalue.js

index 5e69b23..45a432e 100644 (file)
@@ -47,7 +47,7 @@ function ArrayIterator() {}
 
 // 15.4.5.1 CreateArrayIterator Abstract Operation
 function CreateArrayIterator(array, kind) {
-  var object = $toObject(array);
+  var object = ToObject(array);
   var iterator = new ArrayIterator;
   SET_PRIVATE(iterator, arrayIteratorObjectSymbol, object);
   SET_PRIVATE(iterator, arrayIteratorNextIndexSymbol, 0);
@@ -70,7 +70,7 @@ function ArrayIteratorIterator() {
 
 // 15.4.5.2.2 ArrayIterator.prototype.next( )
 function ArrayIteratorNext() {
-  var iterator = $toObject(this);
+  var iterator = ToObject(this);
 
   if (!HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) {
     throw MakeTypeError(kIncompatibleMethodReceiver,
index bf24d16..8e01394 100644 (file)
@@ -196,7 +196,7 @@ function ConvertToString(x) {
   // Assumes x is a non-string.
   if (IS_NUMBER(x)) return %_NumberToString(x);
   if (IS_BOOLEAN(x)) return x ? 'true' : 'false';
-  return (IS_NULL_OR_UNDEFINED(x)) ? '' : $toString($defaultString(x));
+  return (IS_NULL_OR_UNDEFINED(x)) ? '' : %ToString(%DefaultString(x));
 }
 
 
@@ -207,8 +207,8 @@ function ConvertToLocaleString(e) {
     // According to ES5, section 15.4.4.3, the toLocaleString conversion
     // must throw a TypeError if ToObject(e).toLocaleString isn't
     // callable.
-    var e_obj = $toObject(e);
-    return $toString(e_obj.toLocaleString());
+    var e_obj = ToObject(e);
+    return %ToString(e_obj.toLocaleString());
   }
 }
 
@@ -368,7 +368,7 @@ function ArrayToString() {
     }
     array = this;
   } else {
-    array = $toObject(this);
+    array = ToObject(this);
     func = array.join;
   }
   if (!IS_SPEC_FUNCTION(func)) {
@@ -379,7 +379,7 @@ function ArrayToString() {
 
 
 function ArrayToLocaleString() {
-  var array = $toObject(this);
+  var array = ToObject(this);
   var arrayLen = array.length;
   var len = TO_UINT32(arrayLen);
   if (len === 0) return "";
@@ -395,7 +395,7 @@ function ArrayJoin(separator) {
   if (IS_UNDEFINED(separator)) {
     separator = ',';
   } else if (!IS_STRING(separator)) {
-    separator = $nonStringToString(separator);
+    separator = NonStringToString(separator);
   }
 
   var result = %_FastOneByteArrayJoin(array, separator);
@@ -406,7 +406,7 @@ function ArrayJoin(separator) {
     var e = array[0];
     if (IS_STRING(e)) return e;
     if (IS_NULL_OR_UNDEFINED(e)) return '';
-    return $nonStringToString(e);
+    return NonStringToString(e);
   }
 
   return Join(array, length, separator, ConvertToString);
@@ -447,7 +447,7 @@ function ArrayPop() {
 
   n--;
   var value = array[n];
-  $delete(array, $toName(n), true);
+  $delete(array, ToName(n), true);
   array.length = n;
   return value;
 }
@@ -501,7 +501,7 @@ function ArrayPush() {
 function ArrayConcatJS(arg1) {  // length == 1
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.concat");
 
-  var array = $toObject(this);
+  var array = ToObject(this);
   var arg_count = %_ArgumentsLength();
   var arrays = new InternalArray(1 + arg_count);
   arrays[0] = array;
@@ -866,8 +866,8 @@ function ArraySort(comparefn) {
       if (%_IsSmi(x) && %_IsSmi(y)) {
         return %SmiLexicographicCompare(x, y);
       }
-      x = $toString(x);
-      y = $toString(y);
+      x = ToString(x);
+      y = ToString(y);
       if (x == y) return 0;
       else return x < y ? -1 : 1;
     };
@@ -1148,8 +1148,8 @@ function ArrayFilter(f, receiver) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
-  var length = $toUint32(array.length);
+  var array = ToObject(this);
+  var length = ToUint32(array.length);
 
   if (!IS_SPEC_FUNCTION(f)) throw MakeTypeError(kCalledNonCallable, f);
   var needs_wrapper = false;
@@ -1169,7 +1169,7 @@ function ArrayFilter(f, receiver) {
       var element = array[i];
       // Prepare break slots for debugger step in.
       if (stepping) %DebugPrepareStepInIfStepping(f);
-      var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+      var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
       if (%_CallFunction(new_receiver, element, i, array, f)) {
         accumulator[accumulator_length++] = element;
       }
@@ -1185,7 +1185,7 @@ function ArrayForEach(f, receiver) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
+  var array = ToObject(this);
   var length = TO_UINT32(array.length);
 
   if (!IS_SPEC_FUNCTION(f)) throw MakeTypeError(kCalledNonCallable, f);
@@ -1203,7 +1203,7 @@ function ArrayForEach(f, receiver) {
       var element = array[i];
       // Prepare break slots for debugger step in.
       if (stepping) %DebugPrepareStepInIfStepping(f);
-      var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+      var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
       %_CallFunction(new_receiver, element, i, array, f);
     }
   }
@@ -1217,7 +1217,7 @@ function ArraySome(f, receiver) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
+  var array = ToObject(this);
   var length = TO_UINT32(array.length);
 
   if (!IS_SPEC_FUNCTION(f)) throw MakeTypeError(kCalledNonCallable, f);
@@ -1235,7 +1235,7 @@ function ArraySome(f, receiver) {
       var element = array[i];
       // Prepare break slots for debugger step in.
       if (stepping) %DebugPrepareStepInIfStepping(f);
-      var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+      var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
       if (%_CallFunction(new_receiver, element, i, array, f)) return true;
     }
   }
@@ -1248,7 +1248,7 @@ function ArrayEvery(f, receiver) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
+  var array = ToObject(this);
   var length = TO_UINT32(array.length);
 
   if (!IS_SPEC_FUNCTION(f)) throw MakeTypeError(kCalledNonCallable, f);
@@ -1266,7 +1266,7 @@ function ArrayEvery(f, receiver) {
       var element = array[i];
       // Prepare break slots for debugger step in.
       if (stepping) %DebugPrepareStepInIfStepping(f);
-      var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+      var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
       if (!%_CallFunction(new_receiver, element, i, array, f)) return false;
     }
   }
@@ -1279,7 +1279,7 @@ function ArrayMap(f, receiver) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
+  var array = ToObject(this);
   var length = TO_UINT32(array.length);
 
   if (!IS_SPEC_FUNCTION(f)) throw MakeTypeError(kCalledNonCallable, f);
@@ -1299,7 +1299,7 @@ function ArrayMap(f, receiver) {
       var element = array[i];
       // Prepare break slots for debugger step in.
       if (stepping) %DebugPrepareStepInIfStepping(f);
-      var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+      var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
       accumulator[i] = %_CallFunction(new_receiver, element, i, array, f);
     }
   }
@@ -1423,8 +1423,8 @@ function ArrayReduce(callback, current) {
 
   // Pull out the length so that modifications to the length in the
   // loop will not affect the looping and side effects are visible.
-  var array = $toObject(this);
-  var length = $toUint32(array.length);
+  var array = ToObject(this);
+  var length = ToUint32(array.length);
 
   if (!IS_SPEC_FUNCTION(callback)) {
     throw MakeTypeError(kCalledNonCallable, callback);
@@ -1460,8 +1460,8 @@ function ArrayReduceRight(callback, current) {
 
   // Pull out the length so that side effects are visible before the
   // callback function is checked.
-  var array = $toObject(this);
-  var length = $toUint32(array.length);
+  var array = ToObject(this);
+  var length = ToUint32(array.length);
 
   if (!IS_SPEC_FUNCTION(callback)) {
     throw MakeTypeError(kCalledNonCallable, callback);
index a426b82..11b3c46 100644 (file)
@@ -15,7 +15,7 @@ var GlobalObject = global.Object;
 
 function ArrayBufferConstructor(length) { // length = 1
   if (%_IsConstructCall()) {
-    var byteLength = $toPositiveInteger(length, kInvalidArrayBufferLength);
+    var byteLength = ToPositiveInteger(length, kInvalidArrayBufferLength);
     %ArrayBufferInitialize(this, byteLength);
   } else {
     throw MakeTypeError(kConstructorNotFunction, "ArrayBuffer");
index 454a755..3252bfd 100644 (file)
@@ -264,7 +264,7 @@ class AstValue : public ZoneObject {
   F(spread_iterable, "$spreadIterable")                                    \
   F(this, "this")                                                          \
   F(throw_iterator_result_not_an_object, "ThrowIteratorResultNotAnObject") \
-  F(to_string, "$toString")                                                \
+  F(to_string, "ToString")                                                 \
   F(undefined, "undefined")                                                \
   F(use_asm, "use asm")                                                    \
   F(use_strong, "use strong")                                              \
index 9eca9e8..cec7e9e 100644 (file)
@@ -1564,14 +1564,14 @@ void Genesis::InstallNativeFunctions() {
   HandleScope scope(isolate());
   INSTALL_NATIVE(JSFunction, "$createDate", create_date_fun);
 
-  INSTALL_NATIVE(JSFunction, "$toNumber", to_number_fun);
-  INSTALL_NATIVE(JSFunction, "$toString", to_string_fun);
+  INSTALL_NATIVE(JSFunction, "ToNumber", to_number_fun);
+  INSTALL_NATIVE(JSFunction, "ToString", to_string_fun);
   INSTALL_NATIVE(JSFunction, "$toDetailString", to_detail_string_fun);
-  INSTALL_NATIVE(JSFunction, "$toObject", to_object_fun);
-  INSTALL_NATIVE(JSFunction, "$toInteger", to_integer_fun);
-  INSTALL_NATIVE(JSFunction, "$toUint32", to_uint32_fun);
-  INSTALL_NATIVE(JSFunction, "$toInt32", to_int32_fun);
-  INSTALL_NATIVE(JSFunction, "$toLength", to_length_fun);
+  INSTALL_NATIVE(JSFunction, "ToObject", to_object_fun);
+  INSTALL_NATIVE(JSFunction, "ToInteger", to_integer_fun);
+  INSTALL_NATIVE(JSFunction, "ToUint32", to_uint32_fun);
+  INSTALL_NATIVE(JSFunction, "ToInt32", to_int32_fun);
+  INSTALL_NATIVE(JSFunction, "ToLength", to_length_fun);
 
   INSTALL_NATIVE(JSFunction, "$globalEval", global_eval_fun);
   INSTALL_NATIVE(JSFunction, "$getStackTraceLine", get_stack_trace_line_fun);
index 9ebe186..10e0295 100644 (file)
@@ -222,7 +222,7 @@ function SetForEach(f, receiver) {
   while (%SetIteratorNext(iterator, value_array)) {
     if (stepping) %DebugPrepareStepInIfStepping(f);
     key = value_array[0];
-    var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+    var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
     %_CallFunction(new_receiver, key, key, this, f);
   }
 }
@@ -410,7 +410,7 @@ function MapForEach(f, receiver) {
   var value_array = [UNDEFINED, UNDEFINED];
   while (%MapIteratorNext(iterator, value_array)) {
     if (stepping) %DebugPrepareStepInIfStepping(f);
-    var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+    var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
     %_CallFunction(new_receiver, value_array[1], value_array[0], this, f);
   }
 }
index e505a05..4bf5340 100644 (file)
@@ -156,18 +156,18 @@ function DateConstructor(year, month, date, hours, minutes, seconds, ms) {
       // argument. We therefore use NUMBER_HINT for the conversion,
       // which is the default for everything else than Date objects.
       // This makes us behave like KJS and SpiderMonkey.
-      var time = $toPrimitive(year, NUMBER_HINT);
-      value = IS_STRING(time) ? DateParse(time) : $toNumber(time);
+      var time = ToPrimitive(year, NUMBER_HINT);
+      value = IS_STRING(time) ? DateParse(time) : ToNumber(time);
     }
     SET_UTC_DATE_VALUE(this, value);
   } else {
-    year = $toNumber(year);
-    month = $toNumber(month);
-    date = argc > 2 ? $toNumber(date) : 1;
-    hours = argc > 3 ? $toNumber(hours) : 0;
-    minutes = argc > 4 ? $toNumber(minutes) : 0;
-    seconds = argc > 5 ? $toNumber(seconds) : 0;
-    ms = argc > 6 ? $toNumber(ms) : 0;
+    year = ToNumber(year);
+    month = ToNumber(month);
+    date = argc > 2 ? ToNumber(date) : 1;
+    hours = argc > 3 ? ToNumber(hours) : 0;
+    minutes = argc > 4 ? ToNumber(minutes) : 0;
+    seconds = argc > 5 ? ToNumber(seconds) : 0;
+    ms = argc > 6 ? ToNumber(ms) : 0;
     year = (!NUMBER_IS_NAN(year) &&
             0 <= TO_INTEGER(year) &&
             TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
@@ -249,7 +249,7 @@ var parse_buffer = new InternalArray(8);
 
 // ECMA 262 - 15.9.4.2
 function DateParse(string) {
-  var arr = %DateParseString($toString(string), parse_buffer);
+  var arr = %DateParseString(ToString(string), parse_buffer);
   if (IS_NULL(arr)) return NAN;
 
   var day = MakeDay(arr[0], arr[1], arr[2]);
@@ -266,14 +266,14 @@ function DateParse(string) {
 
 // ECMA 262 - 15.9.4.3
 function DateUTC(year, month, date, hours, minutes, seconds, ms) {
-  year = $toNumber(year);
-  month = $toNumber(month);
+  year = ToNumber(year);
+  month = ToNumber(month);
   var argc = %_ArgumentsLength();
-  date = argc > 2 ? $toNumber(date) : 1;
-  hours = argc > 3 ? $toNumber(hours) : 0;
-  minutes = argc > 4 ? $toNumber(minutes) : 0;
-  seconds = argc > 5 ? $toNumber(seconds) : 0;
-  ms = argc > 6 ? $toNumber(ms) : 0;
+  date = argc > 2 ? ToNumber(date) : 1;
+  hours = argc > 3 ? ToNumber(hours) : 0;
+  minutes = argc > 4 ? ToNumber(minutes) : 0;
+  seconds = argc > 5 ? ToNumber(seconds) : 0;
+  ms = argc > 6 ? ToNumber(ms) : 0;
   year = (!NUMBER_IS_NAN(year) &&
           0 <= TO_INTEGER(year) &&
           TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
@@ -454,7 +454,7 @@ function DateGetTimezoneOffset() {
 // ECMA 262 - 15.9.5.27
 function DateSetTime(ms) {
   CHECK_DATE(this);
-  SET_UTC_DATE_VALUE(this, $toNumber(ms));
+  SET_UTC_DATE_VALUE(this, ToNumber(ms));
   return UTC_DATE_VALUE(this);
 }
 
@@ -462,7 +462,7 @@ function DateSetTime(ms) {
 // ECMA 262 - 15.9.5.28
 function DateSetMilliseconds(ms) {
   var t = LOCAL_DATE_VALUE(this);
-  ms = $toNumber(ms);
+  ms = ToNumber(ms);
   var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
 }
@@ -471,7 +471,7 @@ function DateSetMilliseconds(ms) {
 // ECMA 262 - 15.9.5.29
 function DateSetUTCMilliseconds(ms) {
   var t = UTC_DATE_VALUE(this);
-  ms = $toNumber(ms);
+  ms = ToNumber(ms);
   var time = MakeTime(UTC_HOUR(this),
                       UTC_MIN(this),
                       UTC_SEC(this),
@@ -483,8 +483,8 @@ function DateSetUTCMilliseconds(ms) {
 // ECMA 262 - 15.9.5.30
 function DateSetSeconds(sec, ms) {
   var t = LOCAL_DATE_VALUE(this);
-  sec = $toNumber(sec);
-  ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : $toNumber(ms);
+  sec = ToNumber(sec);
+  ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : ToNumber(ms);
   var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), sec, ms);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
 }
@@ -493,8 +493,8 @@ function DateSetSeconds(sec, ms) {
 // ECMA 262 - 15.9.5.31
 function DateSetUTCSeconds(sec, ms) {
   var t = UTC_DATE_VALUE(this);
-  sec = $toNumber(sec);
-  ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : $toNumber(ms);
+  sec = ToNumber(sec);
+  ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : ToNumber(ms);
   var time = MakeTime(UTC_HOUR(this), UTC_MIN(this), sec, ms);
   return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
 }
@@ -503,10 +503,10 @@ function DateSetUTCSeconds(sec, ms) {
 // ECMA 262 - 15.9.5.33
 function DateSetMinutes(min, sec, ms) {
   var t = LOCAL_DATE_VALUE(this);
-  min = $toNumber(min);
+  min = ToNumber(min);
   var argc = %_ArgumentsLength();
-  sec = argc < 2 ? LOCAL_SEC(this) : $toNumber(sec);
-  ms = argc < 3 ? LOCAL_MS(this) : $toNumber(ms);
+  sec = argc < 2 ? LOCAL_SEC(this) : ToNumber(sec);
+  ms = argc < 3 ? LOCAL_MS(this) : ToNumber(ms);
   var time = MakeTime(LOCAL_HOUR(this), min, sec, ms);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
 }
@@ -515,10 +515,10 @@ function DateSetMinutes(min, sec, ms) {
 // ECMA 262 - 15.9.5.34
 function DateSetUTCMinutes(min, sec, ms) {
   var t = UTC_DATE_VALUE(this);
-  min = $toNumber(min);
+  min = ToNumber(min);
   var argc = %_ArgumentsLength();
-  sec = argc < 2 ? UTC_SEC(this) : $toNumber(sec);
-  ms = argc < 3 ? UTC_MS(this) : $toNumber(ms);
+  sec = argc < 2 ? UTC_SEC(this) : ToNumber(sec);
+  ms = argc < 3 ? UTC_MS(this) : ToNumber(ms);
   var time = MakeTime(UTC_HOUR(this), min, sec, ms);
   return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
 }
@@ -527,11 +527,11 @@ function DateSetUTCMinutes(min, sec, ms) {
 // ECMA 262 - 15.9.5.35
 function DateSetHours(hour, min, sec, ms) {
   var t = LOCAL_DATE_VALUE(this);
-  hour = $toNumber(hour);
+  hour = ToNumber(hour);
   var argc = %_ArgumentsLength();
-  min = argc < 2 ? LOCAL_MIN(this) : $toNumber(min);
-  sec = argc < 3 ? LOCAL_SEC(this) : $toNumber(sec);
-  ms = argc < 4 ? LOCAL_MS(this) : $toNumber(ms);
+  min = argc < 2 ? LOCAL_MIN(this) : ToNumber(min);
+  sec = argc < 3 ? LOCAL_SEC(this) : ToNumber(sec);
+  ms = argc < 4 ? LOCAL_MS(this) : ToNumber(ms);
   var time = MakeTime(hour, min, sec, ms);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
 }
@@ -540,11 +540,11 @@ function DateSetHours(hour, min, sec, ms) {
 // ECMA 262 - 15.9.5.34
 function DateSetUTCHours(hour, min, sec, ms) {
   var t = UTC_DATE_VALUE(this);
-  hour = $toNumber(hour);
+  hour = ToNumber(hour);
   var argc = %_ArgumentsLength();
-  min = argc < 2 ? UTC_MIN(this) : $toNumber(min);
-  sec = argc < 3 ? UTC_SEC(this) : $toNumber(sec);
-  ms = argc < 4 ? UTC_MS(this) : $toNumber(ms);
+  min = argc < 2 ? UTC_MIN(this) : ToNumber(min);
+  sec = argc < 3 ? UTC_SEC(this) : ToNumber(sec);
+  ms = argc < 4 ? UTC_MS(this) : ToNumber(ms);
   var time = MakeTime(hour, min, sec, ms);
   return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
 }
@@ -553,7 +553,7 @@ function DateSetUTCHours(hour, min, sec, ms) {
 // ECMA 262 - 15.9.5.36
 function DateSetDate(date) {
   var t = LOCAL_DATE_VALUE(this);
-  date = $toNumber(date);
+  date = ToNumber(date);
   var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
 }
@@ -562,7 +562,7 @@ function DateSetDate(date) {
 // ECMA 262 - 15.9.5.37
 function DateSetUTCDate(date) {
   var t = UTC_DATE_VALUE(this);
-  date = $toNumber(date);
+  date = ToNumber(date);
   var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date);
   return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
 }
@@ -571,8 +571,8 @@ function DateSetUTCDate(date) {
 // ECMA 262 - 15.9.5.38
 function DateSetMonth(month, date) {
   var t = LOCAL_DATE_VALUE(this);
-  month = $toNumber(month);
-  date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : $toNumber(date);
+  month = ToNumber(month);
+  date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : ToNumber(date);
   var day = MakeDay(LOCAL_YEAR(this), month, date);
   return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
 }
@@ -581,8 +581,8 @@ function DateSetMonth(month, date) {
 // ECMA 262 - 15.9.5.39
 function DateSetUTCMonth(month, date) {
   var t = UTC_DATE_VALUE(this);
-  month = $toNumber(month);
-  date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : $toNumber(date);
+  month = ToNumber(month);
+  date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : ToNumber(date);
   var day = MakeDay(UTC_YEAR(this), month, date);
   return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
 }
@@ -591,16 +591,16 @@ function DateSetUTCMonth(month, date) {
 // ECMA 262 - 15.9.5.40
 function DateSetFullYear(year, month, date) {
   var t = LOCAL_DATE_VALUE(this);
-  year = $toNumber(year);
+  year = ToNumber(year);
   var argc = %_ArgumentsLength();
   var time ;
   if (NUMBER_IS_NAN(t)) {
-    month = argc < 2 ? 0 : $toNumber(month);
-    date = argc < 3 ? 1 : $toNumber(date);
+    month = argc < 2 ? 0 : ToNumber(month);
+    date = argc < 3 ? 1 : ToNumber(date);
     time = 0;
   } else {
-    month = argc < 2 ? LOCAL_MONTH(this) : $toNumber(month);
-    date = argc < 3 ? LOCAL_DAY(this) : $toNumber(date);
+    month = argc < 2 ? LOCAL_MONTH(this) : ToNumber(month);
+    date = argc < 3 ? LOCAL_DAY(this) : ToNumber(date);
     time = LOCAL_TIME_IN_DAY(this);
   }
   var day = MakeDay(year, month, date);
@@ -611,16 +611,16 @@ function DateSetFullYear(year, month, date) {
 // ECMA 262 - 15.9.5.41
 function DateSetUTCFullYear(year, month, date) {
   var t = UTC_DATE_VALUE(this);
-  year = $toNumber(year);
+  year = ToNumber(year);
   var argc = %_ArgumentsLength();
   var time ;
   if (NUMBER_IS_NAN(t)) {
-    month = argc < 2 ? 0 : $toNumber(month);
-    date = argc < 3 ? 1 : $toNumber(date);
+    month = argc < 2 ? 0 : ToNumber(month);
+    date = argc < 3 ? 1 : ToNumber(date);
     time = 0;
   } else {
-    month = argc < 2 ? UTC_MONTH(this) : $toNumber(month);
-    date = argc < 3 ? UTC_DAY(this) : $toNumber(date);
+    month = argc < 2 ? UTC_MONTH(this) : ToNumber(month);
+    date = argc < 3 ? UTC_DAY(this) : ToNumber(date);
     time = UTC_TIME_IN_DAY(this);
   }
   var day = MakeDay(year, month, date);
@@ -650,7 +650,7 @@ function DateGetYear() {
 // ECMA 262 - B.2.5
 function DateSetYear(year) {
   CHECK_DATE(this);
-  year = $toNumber(year);
+  year = ToNumber(year);
   if (NUMBER_IS_NAN(year)) return SET_UTC_DATE_VALUE(this, NAN);
   year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
       ? 1900 + TO_INTEGER(year) : year;
@@ -715,8 +715,8 @@ function DateToISOString() {
 
 
 function DateToJSON(key) {
-  var o = $toObject(this);
-  var tv = $defaultNumber(o);
+  var o = ToObject(this);
+  var tv = DefaultNumber(o);
   if (IS_NUMBER(tv) && !NUMBER_IS_FINITE(tv)) {
     return null;
   }
index 991af11..f92bcda 100644 (file)
@@ -202,8 +202,7 @@ BreakPoint.prototype.isTriggered = function(exec_state) {
     try {
       var mirror = exec_state.frame(0).evaluate(this.condition());
       // If no sensible mirror or non true value break point not triggered.
-      if (!(mirror instanceof ValueMirror) ||
-          !builtins.$toBoolean(mirror.value_)) {
+      if (!(mirror instanceof ValueMirror) || !%ToBoolean(mirror.value_)) {
         return false;
       }
     } catch (e) {
@@ -925,8 +924,8 @@ function ExecutionState(break_id) {
 ExecutionState.prototype.prepareStep = function(opt_action, opt_count,
     opt_callframe) {
   var action = Debug.StepAction.StepIn;
-  if (!IS_UNDEFINED(opt_action)) action = builtins.$toNumber(opt_action);
-  var count = opt_count ? builtins.$toNumber(opt_count) : 1;
+  if (!IS_UNDEFINED(opt_action)) action = %ToNumber(opt_action);
+  var count = opt_count ? %ToNumber(opt_count) : 1;
   var callFrameId = 0;
   if (!IS_UNDEFINED(opt_callframe)) {
     callFrameId = opt_callframe.details_.frameId();
@@ -960,7 +959,7 @@ ExecutionState.prototype.frame = function(opt_index) {
 };
 
 ExecutionState.prototype.setSelectedFrame = function(index) {
-  var i = builtins.$toNumber(index);
+  var i = %ToNumber(index);
   if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.');
   this.selected_frame = i;
 };
@@ -1403,7 +1402,7 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function(
         response = this.createResponse();
       }
       response.success = false;
-      response.message = builtins.$toString(e);
+      response.message = %ToString(e);
     }
 
     // Return the response as a JSON encoded string.
@@ -1420,7 +1419,7 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function(
               '"request_seq":' + request.seq + ',' +
               '"type":"response",' +
               '"success":false,' +
-              '"message":"Internal error: ' + builtins.$toString(e) + '"}';
+              '"message":"Internal error: ' + %ToString(e) + '"}';
     }
   } catch (e) {
     // Failed in one of the catch blocks above - most generic error.
@@ -1441,7 +1440,7 @@ DebugCommandProcessor.prototype.continueRequest_ = function(request, response) {
 
     // Get the stepcount argument if any.
     if (stepcount) {
-      count = builtins.$toNumber(stepcount);
+      count = %ToNumber(stepcount);
       if (count < 0) {
         throw new Error('Invalid stepcount argument "' + stepcount + '".');
       }
@@ -1514,7 +1513,7 @@ DebugCommandProcessor.prototype.setBreakPointRequest_ =
       // Find the function through a global evaluate.
       f = this.exec_state_.evaluateGlobal(target).value();
     } catch (e) {
-      response.failed('Error: "' + builtins.$toString(e) +
+      response.failed('Error: "' + %ToString(e) +
                       '" evaluating "' + target + '"');
       return;
     }
@@ -1603,7 +1602,7 @@ DebugCommandProcessor.prototype.changeBreakPointRequest_ = function(
   }
 
   // Pull out arguments.
-  var break_point = builtins.$toNumber(request.arguments.breakpoint);
+  var break_point = %ToNumber(request.arguments.breakpoint);
   var enabled = request.arguments.enabled;
   var condition = request.arguments.condition;
   var ignoreCount = request.arguments.ignoreCount;
@@ -1679,7 +1678,7 @@ DebugCommandProcessor.prototype.clearBreakPointRequest_ = function(
   }
 
   // Pull out arguments.
-  var break_point = builtins.$toNumber(request.arguments.breakpoint);
+  var break_point = %ToNumber(request.arguments.breakpoint);
 
   // Check for legal arguments.
   if (!break_point) {
@@ -1936,7 +1935,7 @@ DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) {
   // With no scope argument just return top scope.
   var scope_index = 0;
   if (request.arguments && !IS_UNDEFINED(request.arguments.number)) {
-    scope_index = builtins.$toNumber(request.arguments.number);
+    scope_index = %ToNumber(request.arguments.number);
     if (scope_index < 0 || scope_holder.scopeCount() <= scope_index) {
       return response.failed('Invalid scope number');
     }
@@ -2000,7 +1999,7 @@ DebugCommandProcessor.prototype.setVariableValueRequest_ =
   if (IS_UNDEFINED(scope_description.number)) {
     response.failed('Missing scope number');
   }
-  var scope_index = builtins.$toNumber(scope_description.number);
+  var scope_index = %ToNumber(scope_description.number);
 
   var scope = scope_holder.scope(scope_index);
 
@@ -2078,7 +2077,7 @@ DebugCommandProcessor.prototype.evaluateRequest_ = function(request, response) {
 
   // Check whether a frame was specified.
   if (!IS_UNDEFINED(frame)) {
-    var frame_number = builtins.$toNumber(frame);
+    var frame_number = %ToNumber(frame);
     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) {
       return response.failed('Invalid frame "' + frame + '"');
     }
@@ -2110,7 +2109,7 @@ DebugCommandProcessor.prototype.lookupRequest_ = function(request, response) {
 
   // Set 'includeSource' option for script lookup.
   if (!IS_UNDEFINED(request.arguments.includeSource)) {
-    var includeSource = builtins.$toBoolean(request.arguments.includeSource);
+    var includeSource = %ToBoolean(request.arguments.includeSource);
     response.setOption('includeSource', includeSource);
   }
 
@@ -2178,7 +2177,7 @@ DebugCommandProcessor.prototype.sourceRequest_ = function(request, response) {
     to_line = request.arguments.toLine;
 
     if (!IS_UNDEFINED(request.arguments.frame)) {
-      var frame_number = builtins.$toNumber(request.arguments.frame);
+      var frame_number = %ToNumber(request.arguments.frame);
       if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) {
         return response.failed('Invalid frame "' + frame + '"');
       }
@@ -2214,7 +2213,7 @@ DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) {
   if (request.arguments) {
     // Pull out arguments.
     if (!IS_UNDEFINED(request.arguments.types)) {
-      types = builtins.$toNumber(request.arguments.types);
+      types = %ToNumber(request.arguments.types);
       if (isNaN(types) || types < 0) {
         return response.failed('Invalid types "' +
                                request.arguments.types + '"');
@@ -2222,7 +2221,7 @@ DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) {
     }
 
     if (!IS_UNDEFINED(request.arguments.includeSource)) {
-      includeSource = builtins.$toBoolean(request.arguments.includeSource);
+      includeSource = %ToBoolean(request.arguments.includeSource);
       response.setOption('includeSource', includeSource);
     }
 
@@ -2237,7 +2236,7 @@ DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) {
     var filterStr = null;
     var filterNum = null;
     if (!IS_UNDEFINED(request.arguments.filter)) {
-      var num = builtins.$toNumber(request.arguments.filter);
+      var num = %ToNumber(request.arguments.filter);
       if (!isNaN(num)) {
         filterNum = num;
       }
@@ -2373,7 +2372,7 @@ DebugCommandProcessor.prototype.restartFrameRequest_ = function(
   var frame_mirror;
   // Check whether a frame was specified.
   if (!IS_UNDEFINED(frame)) {
-    var frame_number = builtins.$toNumber(frame);
+    var frame_number = %ToNumber(frame);
     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) {
       return response.failed('Invalid frame "' + frame + '"');
     }
index dc54469..c8cf788 100644 (file)
@@ -16,14 +16,14 @@ var GlobalArray = global.Array;
 // https://github.com/tc39/Array.prototype.includes
 // 6e3b78c927aeda20b9d40e81303f9d44596cd904
 function ArrayIncludes(searchElement, fromIndex) {
-  var array = $toObject(this);
-  var len = $toLength(array.length);
+  var array = ToObject(this);
+  var len = ToLength(array.length);
 
   if (len === 0) {
     return false;
   }
 
-  var n = $toInteger(fromIndex);
+  var n = ToInteger(fromIndex);
 
   var k;
   if (n >= 0) {
@@ -37,7 +37,7 @@ function ArrayIncludes(searchElement, fromIndex) {
 
   while (k < len) {
     var elementK = array[k];
-    if ($sameValueZero(searchElement, elementK)) {
+    if (SameValueZero(searchElement, elementK)) {
       return true;
     }
 
index 3a46bad..5637917 100644 (file)
@@ -18,7 +18,7 @@ function ArrayCopyWithin(target, start, end) {
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.copyWithin");
 
   var array = TO_OBJECT_INLINE(this);
-  var length = $toLength(array.length);
+  var length = ToLength(array.length);
 
   target = TO_INTEGER(target);
   var to;
@@ -70,8 +70,8 @@ function ArrayCopyWithin(target, start, end) {
 function ArrayFind(predicate /* thisArg */) {  // length == 1
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.find");
 
-  var array = $toObject(this);
-  var length = $toInteger(array.length);
+  var array = ToObject(this);
+  var length = ToInteger(array.length);
 
   if (!IS_SPEC_FUNCTION(predicate)) {
     throw MakeTypeError(kCalledNonCallable, predicate);
@@ -92,7 +92,7 @@ function ArrayFind(predicate /* thisArg */) {  // length == 1
   for (var i = 0; i < length; i++) {
     if (i in array) {
       var element = array[i];
-      var newThisArg = needs_wrapper ? $toObject(thisArg) : thisArg;
+      var newThisArg = needs_wrapper ? ToObject(thisArg) : thisArg;
       if (%_CallFunction(newThisArg, element, i, array, predicate)) {
         return element;
       }
@@ -107,8 +107,8 @@ function ArrayFind(predicate /* thisArg */) {  // length == 1
 function ArrayFindIndex(predicate /* thisArg */) {  // length == 1
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.findIndex");
 
-  var array = $toObject(this);
-  var length = $toInteger(array.length);
+  var array = ToObject(this);
+  var length = ToInteger(array.length);
 
   if (!IS_SPEC_FUNCTION(predicate)) {
     throw MakeTypeError(kCalledNonCallable, predicate);
@@ -129,7 +129,7 @@ function ArrayFindIndex(predicate /* thisArg */) {  // length == 1
   for (var i = 0; i < length; i++) {
     if (i in array) {
       var element = array[i];
-      var newThisArg = needs_wrapper ? $toObject(thisArg) : thisArg;
+      var newThisArg = needs_wrapper ? ToObject(thisArg) : thisArg;
       if (%_CallFunction(newThisArg, element, i, array, predicate)) {
         return i;
       }
@@ -144,7 +144,7 @@ function ArrayFindIndex(predicate /* thisArg */) {  // length == 1
 function ArrayFill(value /* [, start [, end ] ] */) {  // length == 1
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.fill");
 
-  var array = $toObject(this);
+  var array = ToObject(this);
   var length = TO_UINT32(array.length);
 
   var i = 0;
@@ -184,7 +184,7 @@ function ArrayFill(value /* [, start [, end ] ] */) {  // length == 1
 
 // ES6, draft 10-14-14, section 22.1.2.1
 function ArrayFrom(arrayLike, mapfn, receiver) {
-  var items = $toObject(arrayLike);
+  var items = ToObject(arrayLike);
   var mapping = !IS_UNDEFINED(mapfn);
 
   if (mapping) {
@@ -232,8 +232,8 @@ function ArrayFrom(arrayLike, mapfn, receiver) {
       %AddElement(result, k++, mappedValue, NONE);
     }
   } else {
-    var len = $toLength(items.length);
-    result = %IsConstructor(this) ? new this(len) : new GlobalArray(len);
+    var len = ToLength(items.length);
+    result = %IsConstructor(this) ? new this(len) : new $Array(len);
 
     for (k = 0; k < len; ++k) {
       nextValue = items[k];
index 3689bec..f8e721f 100644 (file)
@@ -16,7 +16,7 @@ var GlobalRegExp = global.RegExp;
 // + https://bugs.ecmascript.org/show_bug.cgi?id=3423
 function RegExpGetFlags() {
   if (!IS_SPEC_OBJECT(this)) {
-    throw MakeTypeError(kFlagsGetterNonObject, $toString(this));
+    throw MakeTypeError(kFlagsGetterNonObject, %ToString(this));
   }
   var result = '';
   if (this.global) result += 'g';
index 9b7cd0d..6a69608 100644 (file)
@@ -55,7 +55,7 @@ function NAMEForEach(f /* thisArg */) {  // length == 1
     var element = this[i];
     // Prepare break slots for debugger step in.
     if (stepping) %DebugPrepareStepInIfStepping(f);
-    var new_receiver = needs_wrapper ? $toObject(receiver) : receiver;
+    var new_receiver = needs_wrapper ? ToObject(receiver) : receiver;
     %_CallFunction(new_receiver, TO_OBJECT_INLINE(element), i, this, f);
   }
 }
index d0c890b..ec6518a 100644 (file)
@@ -287,7 +287,7 @@ function supportedLocalesOf(service, locales, options) {
   if (options === undefined) {
     options = {};
   } else {
-    options = $toObject(options);
+    options = ToObject(options);
   }
 
   var matcher = options.localeMatcher;
@@ -743,7 +743,7 @@ function initializeLocaleList(locales) {
       return freezeArray(seen);
     }
 
-    var o = $toObject(locales);
+    var o = ToObject(locales);
     // Converts it to UInt32 (>>> is shr on 32bit integers).
     var len = o.length >>> 0;
 
@@ -955,7 +955,7 @@ function initializeCollator(collator, locales, options) {
       return new Intl.Collator(locales, options);
     }
 
-    return initializeCollator($toObject(this), locales, options);
+    return initializeCollator(ToObject(this), locales, options);
   },
   DONT_ENUM
 );
@@ -1181,7 +1181,7 @@ function initializeNumberFormat(numberFormat, locales, options) {
       return new Intl.NumberFormat(locales, options);
     }
 
-    return initializeNumberFormat($toObject(this), locales, options);
+    return initializeNumberFormat(ToObject(this), locales, options);
   },
   DONT_ENUM
 );
@@ -1266,7 +1266,7 @@ $setFunctionName(Intl.NumberFormat.supportedLocalesOf, 'supportedLocalesOf');
  */
 function formatNumber(formatter, value) {
   // Spec treats -0 and +0 as 0.
-  var number = $toNumber(value) + 0;
+  var number = GlobalNumber(value) + 0;
 
   return %InternalNumberFormat(%GetImplFromInitializedIntlObject(formatter),
                                number);
@@ -1573,7 +1573,7 @@ function initializeDateTimeFormat(dateFormat, locales, options) {
       return new Intl.DateTimeFormat(locales, options);
     }
 
-    return initializeDateTimeFormat($toObject(this), locales, options);
+    return initializeDateTimeFormat(ToObject(this), locales, options);
   },
   DONT_ENUM
 );
@@ -1661,7 +1661,7 @@ function formatDate(formatter, dateValue) {
   if (dateValue === undefined) {
     dateMs = GlobalDate.now();
   } else {
-    dateMs = $toNumber(dateValue);
+    dateMs = GlobalNumber(dateValue);
   }
 
   if (!$isFinite(dateMs)) throw MakeRangeError(kDateRange);
@@ -1774,7 +1774,7 @@ function initializeBreakIterator(iterator, locales, options) {
       return new Intl.v8BreakIterator(locales, options);
     }
 
-    return initializeBreakIterator($toObject(this), locales, options);
+    return initializeBreakIterator(ToObject(this), locales, options);
   },
   DONT_ENUM
 );
index f20106a..26948fc 100644 (file)
@@ -154,10 +154,10 @@ function JSONSerialize(key, holder, replacer, stack, indent, gap) {
     if (IS_ARRAY(value)) {
       return SerializeArray(value, replacer, stack, indent, gap);
     } else if (IS_NUMBER_WRAPPER(value)) {
-      value = $toNumber(value);
+      value = ToNumber(value);
       return JSON_NUMBER_TO_STRING(value);
     } else if (IS_STRING_WRAPPER(value)) {
-      return %QuoteJSONString($toString(value));
+      return %QuoteJSONString(ToString(value));
     } else if (IS_BOOLEAN_WRAPPER(value)) {
       return %_ValueOf(value) ? "true" : "false";
     } else {
@@ -176,14 +176,14 @@ function JSONStringify(value, replacer, space) {
   if (IS_OBJECT(space)) {
     // Unwrap 'space' if it is wrapped
     if (IS_NUMBER_WRAPPER(space)) {
-      space = $toNumber(space);
+      space = ToNumber(space);
     } else if (IS_STRING_WRAPPER(space)) {
-      space = $toString(space);
+      space = ToString(space);
     }
   }
   var gap;
   if (IS_NUMBER(space)) {
-    space = $max(0, $min($toInteger(space), 10));
+    space = $max(0, $min(ToInteger(space), 10));
     gap = %_SubString("          ", 0, space);
   } else if (IS_STRING(space)) {
     if (space.length > 10) {
@@ -203,9 +203,9 @@ function JSONStringify(value, replacer, space) {
     for (var i = 0; i < length; i++) {
       var item = replacer[i];
       if (IS_STRING_WRAPPER(item)) {
-        item = $toString(item);
+        item = ToString(item);
       } else {
-        if (IS_NUMBER_WRAPPER(item)) item = $toNumber(item);
+        if (IS_NUMBER_WRAPPER(item)) item = ToNumber(item);
         if (IS_NUMBER(item)) item = %_NumberToString(item);
       }
       if (IS_STRING(item) && seen_properties[item] != seen_sentinel) {
index 9fd5442..7f99901 100644 (file)
@@ -143,14 +143,14 @@ define kBoundArgumentsStartIndex = 2;
 # Inline macros. Use %IS_VAR to make sure arg is evaluated only once.
 macro NUMBER_IS_NAN(arg) = (!%_IsSmi(%IS_VAR(arg)) && !(arg == arg));
 macro NUMBER_IS_FINITE(arg) = (%_IsSmi(%IS_VAR(arg)) || ((arg == arg) && (arg != 1/0) && (arg != -1/0)));
-macro TO_INTEGER(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToInteger($toNumber(arg)));
-macro TO_INTEGER_FOR_SIDE_EFFECT(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : $toNumber(arg));
-macro TO_INTEGER_MAP_MINUS_ZERO(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToIntegerMapMinusZero($toNumber(arg)));
+macro TO_INTEGER(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToInteger(ToNumber(arg)));
+macro TO_INTEGER_FOR_SIDE_EFFECT(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : ToNumber(arg));
+macro TO_INTEGER_MAP_MINUS_ZERO(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToIntegerMapMinusZero(ToNumber(arg)));
 macro TO_INT32(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : (arg >> 0));
 macro TO_UINT32(arg) = (arg >>> 0);
-macro TO_STRING_INLINE(arg) = (IS_STRING(%IS_VAR(arg)) ? arg : $nonStringToString(arg));
-macro TO_NUMBER_INLINE(arg) = (IS_NUMBER(%IS_VAR(arg)) ? arg : $nonNumberToNumber(arg));
-macro TO_OBJECT_INLINE(arg) = (IS_SPEC_OBJECT(%IS_VAR(arg)) ? arg : $toObject(arg));
+macro TO_STRING_INLINE(arg) = (IS_STRING(%IS_VAR(arg)) ? arg : NonStringToString(arg));
+macro TO_NUMBER_INLINE(arg) = (IS_NUMBER(%IS_VAR(arg)) ? arg : NonNumberToNumber(arg));
+macro TO_OBJECT_INLINE(arg) = (IS_SPEC_OBJECT(%IS_VAR(arg)) ? arg : ToObject(arg));
 macro JSON_NUMBER_TO_STRING(arg) = ((%_IsSmi(%IS_VAR(arg)) || arg - arg == 0) ? %_NumberToString(arg) : "null");
 macro HAS_OWN_PROPERTY(arg, index) = (%_CallFunction(arg, index, $objectHasOwnProperty));
 macro SHOULD_CREATE_WRAPPER(functionName, receiver) = (!IS_SPEC_OBJECT(receiver) && %IsSloppyModeFunction(functionName));
index 16083d7..04c27b6 100644 (file)
@@ -88,7 +88,7 @@ function MathMax(arg1, arg2) {  // length == 2
   var r = -INFINITY;
   for (var i = 0; i < length; i++) {
     var n = %_Arguments(i);
-    n = TO_NUMBER_INLINE(n);
+    if (!IS_NUMBER(n)) n = NonNumberToNumber(n);
     // Make sure +0 is considered greater than -0.
     if (NUMBER_IS_NAN(n) || n > r || (r === 0 && n === 0 && %_IsMinusZero(r))) {
       r = n;
@@ -115,7 +115,7 @@ function MathMin(arg1, arg2) {  // length == 2
   var r = INFINITY;
   for (var i = 0; i < length; i++) {
     var n = %_Arguments(i);
-    n = TO_NUMBER_INLINE(n);
+    if (!IS_NUMBER(n)) n = NonNumberToNumber(n);
     // Make sure -0 is considered less than +0.
     if (NUMBER_IS_NAN(n) || n < r || (r === 0 && n === 0 && %_IsMinusZero(n))) {
       r = n;
@@ -175,7 +175,7 @@ function MathTrunc(x) {
 
 // ES6 draft 09-27-13, section 20.2.2.33.
 function MathTanh(x) {
-  x = TO_NUMBER_INLINE(x);
+  if (!IS_NUMBER(x)) x = NonNumberToNumber(x);
   // Idempotent for +/-0.
   if (x === 0) return x;
   // Returns +/-1 for +/-Infinity.
@@ -187,7 +187,7 @@ function MathTanh(x) {
 
 // ES6 draft 09-27-13, section 20.2.2.5.
 function MathAsinh(x) {
-  x = TO_NUMBER_INLINE(x);
+  if (!IS_NUMBER(x)) x = NonNumberToNumber(x);
   // Idempotent for NaN, +/-0 and +/-Infinity.
   if (x === 0 || !NUMBER_IS_FINITE(x)) return x;
   if (x > 0) return MathLog(x + %_MathSqrt(x * x + 1));
@@ -197,7 +197,7 @@ function MathAsinh(x) {
 
 // ES6 draft 09-27-13, section 20.2.2.3.
 function MathAcosh(x) {
-  x = TO_NUMBER_INLINE(x);
+  if (!IS_NUMBER(x)) x = NonNumberToNumber(x);
   if (x < 1) return NAN;
   // Idempotent for NaN and +Infinity.
   if (!NUMBER_IS_FINITE(x)) return x;
@@ -206,7 +206,7 @@ function MathAcosh(x) {
 
 // ES6 draft 09-27-13, section 20.2.2.7.
 function MathAtanh(x) {
-  x = TO_NUMBER_INLINE(x);
+  if (!IS_NUMBER(x)) x = NonNumberToNumber(x);
   // Idempotent for +/-0.
   if (x === 0) return x;
   // Returns NaN for NaN and +/- Infinity.
@@ -224,7 +224,7 @@ function MathHypot(x, y) {  // Function length is 2.
   var max = 0;
   for (var i = 0; i < length; i++) {
     var n = %_Arguments(i);
-    n = TO_NUMBER_INLINE(n);
+    if (!IS_NUMBER(n)) n = NonNumberToNumber(n);
     if (n === INFINITY || n === -INFINITY) return INFINITY;
     n = MathAbs(n);
     if (n > max) max = n;
@@ -261,7 +261,7 @@ function MathClz32JS(x) {
 // Using initial approximation adapted from Kahan's cbrt and 4 iterations
 // of Newton's method.
 function MathCbrt(x) {
-  x = TO_NUMBER_INLINE(x);
+  if (!IS_NUMBER(x)) x = NonNumberToNumber(x);
   if (x == 0 || !NUMBER_IS_FINITE(x)) return x;
   return x >= 0 ? CubeRoot(x) : -CubeRoot(-x);
 }
index d2a922e..60c703d 100644 (file)
@@ -269,7 +269,7 @@ function ToStringCheckErrorObject(obj) {
   if (CanBeSafelyTreatedAsAnErrorObject(obj)) {
     return %_CallFunction(obj, ErrorToString);
   } else {
-    return $toString(obj);
+    return ToString(obj);
   }
 }
 
@@ -1089,7 +1089,7 @@ function DefineError(f) {
       // object. This avoids going through getters and setters defined
       // on prototype objects.
       if (!IS_UNDEFINED(m)) {
-        %AddNamedProperty(this, 'message', $toString(m), DONT_ENUM);
+        %AddNamedProperty(this, 'message', ToString(m), DONT_ENUM);
       }
     } else {
       return new f(m);
index 9ea23d7..b293ba0 100644 (file)
@@ -823,7 +823,7 @@ ObjectMirror.prototype.internalProperties = function() {
 
 
 ObjectMirror.prototype.property = function(name) {
-  var details = %DebugGetPropertyDetails(this.value_, builtins.$toName(name));
+  var details = %DebugGetPropertyDetails(this.value_, %ToName(name));
   if (details) {
     return new PropertyMirror(this, name, details);
   }
@@ -1186,7 +1186,7 @@ ArrayMirror.prototype.indexedPropertiesFromRange = function(opt_from_index,
   if (from_index > to_index) return new Array();
   var values = new Array(to_index - from_index + 1);
   for (var i = from_index; i <= to_index; i++) {
-    var details = %DebugGetPropertyDetails(this.value_, builtins.$toString(i));
+    var details = %DebugGetPropertyDetails(this.value_, %ToString(i));
     var value;
     if (details) {
       value = new PropertyMirror(this, i, details);
index 7228a06..f404f79 100644 (file)
@@ -317,7 +317,7 @@ function ConvertAcceptListToTypeMap(arg) {
 
   if (!IS_SPEC_OBJECT(arg)) throw MakeTypeError(kObserveInvalidAccept);
 
-  var len = $toInteger(arg.length);
+  var len = ToInteger(arg.length);
   if (len < 0) len = 0;
 
   return TypeMapCreateFromList(arg, len);
index 361a5f5..f56bdb2 100644 (file)
@@ -2245,8 +2245,8 @@ class JSObject: public JSReceiver {
   // permissible values (see the DCHECK in heap.cc).
   static const int kInitialMaxFastElementArray = 100000;
 
-  // This constant applies only to the initial map of "global.Object" and
-  // not to arbitrary other JSObject maps.
+  // This constant applies only to the initial map of "$Object" aka
+  // "global.Object" and not to arbitrary other JSObject maps.
   static const int kInitialGlobalObjectUnusedPropertiesCount = 4;
 
   static const int kMaxInstanceSize = 255 * kPointerSize;
index 9f5056b..9f89a6a 100644 (file)
@@ -55,8 +55,8 @@ function DoConstructRegExp(object, pattern, flags) {
     pattern = pattern.source;
   }
 
-  pattern = IS_UNDEFINED(pattern) ? '' : $toString(pattern);
-  flags = IS_UNDEFINED(flags) ? '' : $toString(flags);
+  pattern = IS_UNDEFINED(pattern) ? '' : ToString(pattern);
+  flags = IS_UNDEFINED(flags) ? '' : ToString(flags);
 
   %RegExpInitializeAndCompile(object, pattern, flags);
 }
@@ -381,7 +381,7 @@ var RegExpGetInput = function() {
   return IS_UNDEFINED(regExpInput) ? "" : regExpInput;
 };
 var RegExpSetInput = function(string) {
-  LAST_INPUT($regexpLastMatchInfo) = $toString(string);
+  LAST_INPUT($regexpLastMatchInfo) = ToString(string);
 };
 
 %OptimizeObjectForAddingMultipleProperties(GlobalRegExp, 22);
index 004f9bf..b425a2c 100644 (file)
 
 // The following declarations are shared with other native JS files.
 // They are all declared at this one spot to avoid redeclaration errors.
-var EQUALS;
-var STRICT_EQUALS;
-var COMPARE;
-var ADD;
-var ADD_STRONG;
-var STRING_ADD_LEFT;
-var STRING_ADD_LEFT_STRONG;
-var STRING_ADD_RIGHT;
-var STRING_ADD_RIGHT_STRONG;
-var SUB;
-var SUB_STRONG;
-var MUL;
-var MUL_STRONG;
-var DIV;
-var DIV_STRONG;
-var MOD;
-var MOD_STRONG;
-var BIT_OR;
-var BIT_OR_STRONG;
-var BIT_AND;
-var BIT_AND_STRONG;
-var BIT_XOR;
-var BIT_XOR_STRONG;
-var SHL;
-var SHL_STRONG;
-var SAR;
-var SAR_STRONG;
-var SHR;
-var SHR_STRONG;
-var DELETE;
-var IN;
-var INSTANCE_OF;
-var FILTER_KEY;
-var CALL_NON_FUNCTION;
-var CALL_NON_FUNCTION_AS_CONSTRUCTOR;
-var CALL_FUNCTION_PROXY;
-var CALL_FUNCTION_PROXY_AS_CONSTRUCTOR;
-var APPLY_PREPARE;
-var REFLECT_APPLY_PREPARE;
-var REFLECT_CONSTRUCT_PREPARE;
-var STACK_OVERFLOW;
-var TO_OBJECT;
-var TO_NUMBER;
-var TO_STRING;
-var TO_NAME;
-
-var STRING_LENGTH_STUB;
-
-var $defaultNumber;
-var $defaultString;
-var $NaN;
-var $nonNumberToNumber;
-var $nonStringToString;
-var $sameValue;
-var $sameValueZero;
-var $toBoolean;
-var $toInt32;
-var $toInteger;
-var $toLength;
-var $toName;
-var $toNumber;
-var $toObject;
-var $toPositiveInteger;
-var $toPrimitive;
-var $toString;
-var $toUint32;
-
-(function() {
-
-%CheckIsBootstrapping();
-
-var GlobalArray = global.Array;
-var GlobalBoolean = global.Boolean;
-var GlobalString = global.String;
-var GlobalNumber = global.Number;
-
-// ----------------------------------------------------------------------------
+var $Object = global.Object;
+var $Array = global.Array;
+var $String = global.String;
+var $Number = global.Number;
+var $Function = global.Function;
+var $Boolean = global.Boolean;
+var $NaN = %GetRootNaN();
 
 // ECMA-262 Section 11.9.3.
-EQUALS = function EQUALS(y) {
+function EQUALS(y) {
   if (IS_STRING(this) && IS_STRING(y)) return %StringEquals(this, y);
   var x = this;
 
@@ -107,18 +37,18 @@ EQUALS = function EQUALS(y) {
         if (IS_SYMBOL(y)) return 1;  // not equal
         if (!IS_SPEC_OBJECT(y)) {
           // String or boolean.
-          return %NumberEquals(x, %$toNumber(y));
+          return %NumberEquals(x, %ToNumber(y));
         }
-        y = %$toPrimitive(y, NO_HINT);
+        y = %ToPrimitive(y, NO_HINT);
       }
     } else if (IS_STRING(x)) {
       while (true) {
         if (IS_STRING(y)) return %StringEquals(x, y);
         if (IS_SYMBOL(y)) return 1;  // not equal
-        if (IS_NUMBER(y)) return %NumberEquals(%$toNumber(x), y);
-        if (IS_BOOLEAN(y)) return %NumberEquals(%$toNumber(x), %$toNumber(y));
+        if (IS_NUMBER(y)) return %NumberEquals(%ToNumber(x), y);
+        if (IS_BOOLEAN(y)) return %NumberEquals(%ToNumber(x), %ToNumber(y));
         if (IS_NULL_OR_UNDEFINED(y)) return 1;  // not equal
-        y = %$toPrimitive(y, NO_HINT);
+        y = %ToPrimitive(y, NO_HINT);
       }
     } else if (IS_SYMBOL(x)) {
       if (IS_SYMBOL(y)) return %_ObjectEquals(x, y) ? 0 : 1;
@@ -126,12 +56,12 @@ EQUALS = function EQUALS(y) {
     } else if (IS_BOOLEAN(x)) {
       if (IS_BOOLEAN(y)) return %_ObjectEquals(x, y) ? 0 : 1;
       if (IS_NULL_OR_UNDEFINED(y)) return 1;
-      if (IS_NUMBER(y)) return %NumberEquals(%$toNumber(x), y);
-      if (IS_STRING(y)) return %NumberEquals(%$toNumber(x), %$toNumber(y));
+      if (IS_NUMBER(y)) return %NumberEquals(%ToNumber(x), y);
+      if (IS_STRING(y)) return %NumberEquals(%ToNumber(x), %ToNumber(y));
       if (IS_SYMBOL(y)) return 1;  // not equal
       // y is object.
-      x = %$toNumber(x);
-      y = %$toPrimitive(y, NO_HINT);
+      x = %ToNumber(x);
+      y = %ToPrimitive(y, NO_HINT);
     } else if (IS_NULL_OR_UNDEFINED(x)) {
       return IS_NULL_OR_UNDEFINED(y) ? 0 : 1;
     } else {
@@ -141,14 +71,14 @@ EQUALS = function EQUALS(y) {
       }
       if (IS_NULL_OR_UNDEFINED(y)) return 1;  // not equal
       if (IS_SYMBOL(y)) return 1;  // not equal
-      if (IS_BOOLEAN(y)) y = %$toNumber(y);
-      x = %$toPrimitive(x, NO_HINT);
+      if (IS_BOOLEAN(y)) y = %ToNumber(y);
+      x = %ToPrimitive(x, NO_HINT);
     }
   }
 }
 
 // ECMA-262, section 11.9.4, page 56.
-STRICT_EQUALS = function STRICT_EQUALS(x) {
+function STRICT_EQUALS(x) {
   if (IS_STRING(this)) {
     if (!IS_STRING(x)) return 1;  // not equal
     return %StringEquals(this, x);
@@ -168,7 +98,7 @@ STRICT_EQUALS = function STRICT_EQUALS(x) {
 
 // ECMA-262, section 11.8.5, page 53. The 'ncr' parameter is used as
 // the result when either (or both) the operands are NaN.
-COMPARE = function COMPARE(x, ncr) {
+function COMPARE(x, ncr) {
   var left;
   var right;
   // Fast cases for string, numbers and undefined compares.
@@ -182,22 +112,22 @@ COMPARE = function COMPARE(x, ncr) {
     left = this;
   } else if (IS_UNDEFINED(this)) {
     if (!IS_UNDEFINED(x)) {
-      %$toPrimitive(x, NUMBER_HINT);
+      %ToPrimitive(x, NUMBER_HINT);
     }
     return ncr;
   } else if (IS_UNDEFINED(x)) {
-    %$toPrimitive(this, NUMBER_HINT);
+    %ToPrimitive(this, NUMBER_HINT);
     return ncr;
   } else {
-    left = %$toPrimitive(this, NUMBER_HINT);
+    left = %ToPrimitive(this, NUMBER_HINT);
   }
 
-  right = %$toPrimitive(x, NUMBER_HINT);
+  right = %ToPrimitive(x, NUMBER_HINT);
   if (IS_STRING(left) && IS_STRING(right)) {
     return %_StringCompare(left, right);
   } else {
-    var left_number = %$toNumber(left);
-    var right_number = %$toNumber(right);
+    var left_number = %ToNumber(left);
+    var right_number = %ToNumber(right);
     if (NUMBER_IS_NAN(left_number) || NUMBER_IS_NAN(right_number)) return ncr;
     return %NumberCompare(left_number, right_number, ncr);
   }
@@ -211,27 +141,27 @@ COMPARE = function COMPARE(x, ncr) {
 */
 
 // ECMA-262, section 11.6.1, page 50.
-ADD = function ADD(x) {
+function ADD(x) {
   // Fast case: Check for number operands and do the addition.
   if (IS_NUMBER(this) && IS_NUMBER(x)) return %NumberAdd(this, x);
   if (IS_STRING(this) && IS_STRING(x)) return %_StringAdd(this, x);
 
   // Default implementation.
-  var a = %$toPrimitive(this, NO_HINT);
-  var b = %$toPrimitive(x, NO_HINT);
+  var a = %ToPrimitive(this, NO_HINT);
+  var b = %ToPrimitive(x, NO_HINT);
 
   if (IS_STRING(a)) {
-    return %_StringAdd(a, %$toString(b));
+    return %_StringAdd(a, %ToString(b));
   } else if (IS_STRING(b)) {
-    return %_StringAdd(%$nonStringToString(a), b);
+    return %_StringAdd(%NonStringToString(a), b);
   } else {
-    return %NumberAdd(%$toNumber(a), %$toNumber(b));
+    return %NumberAdd(%ToNumber(a), %ToNumber(b));
   }
 }
 
 
 // Strong mode ADD throws if an implicit conversion would be performed
-ADD_STRONG = function ADD_STRONG(x) {
+function ADD_STRONG(x) {
   if (IS_NUMBER(this) && IS_NUMBER(x)) return %NumberAdd(this, x);
   if (IS_STRING(this) && IS_STRING(x)) return %_StringAdd(this, x);
 
@@ -240,14 +170,14 @@ ADD_STRONG = function ADD_STRONG(x) {
 
 
 // Left operand (this) is already a string.
-STRING_ADD_LEFT = function STRING_ADD_LEFT(y) {
+function STRING_ADD_LEFT(y) {
   if (!IS_STRING(y)) {
     if (IS_STRING_WRAPPER(y) && %_IsStringWrapperSafeForDefaultValueOf(y)) {
       y = %_ValueOf(y);
     } else {
       y = IS_NUMBER(y)
           ? %_NumberToString(y)
-          : %$toString(%$toPrimitive(y, NO_HINT));
+          : %ToString(%ToPrimitive(y, NO_HINT));
     }
   }
   return %_StringAdd(this, y);
@@ -255,7 +185,7 @@ STRING_ADD_LEFT = function STRING_ADD_LEFT(y) {
 
 
 // Left operand (this) is already a string.
-STRING_ADD_LEFT_STRONG = function STRING_ADD_LEFT_STRONG(y) {
+function STRING_ADD_LEFT_STRONG(y) {
   if (IS_STRING(y)) {
     return %_StringAdd(this, y);
   }
@@ -264,7 +194,7 @@ STRING_ADD_LEFT_STRONG = function STRING_ADD_LEFT_STRONG(y) {
 
 
 // Right operand (y) is already a string.
-STRING_ADD_RIGHT = function STRING_ADD_RIGHT(y) {
+function STRING_ADD_RIGHT(y) {
   var x = this;
   if (!IS_STRING(x)) {
     if (IS_STRING_WRAPPER(x) && %_IsStringWrapperSafeForDefaultValueOf(x)) {
@@ -272,7 +202,7 @@ STRING_ADD_RIGHT = function STRING_ADD_RIGHT(y) {
     } else {
       x = IS_NUMBER(x)
           ? %_NumberToString(x)
-          : %$toString(%$toPrimitive(x, NO_HINT));
+          : %ToString(%ToPrimitive(x, NO_HINT));
     }
   }
   return %_StringAdd(x, y);
@@ -280,7 +210,7 @@ STRING_ADD_RIGHT = function STRING_ADD_RIGHT(y) {
 
 
 // Right operand (y) is already a string.
-STRING_ADD_RIGHT_STRONG = function STRING_ADD_RIGHT_STRONG(y) {
+function STRING_ADD_RIGHT_STRONG(y) {
   if (IS_STRING(this)) {
     return %_StringAdd(this, y);
   }
@@ -289,15 +219,15 @@ STRING_ADD_RIGHT_STRONG = function STRING_ADD_RIGHT_STRONG(y) {
 
 
 // ECMA-262, section 11.6.2, page 50.
-SUB = function SUB(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function SUB(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberSub(x, y);
 }
 
 
 // Strong mode SUB throws if an implicit conversion would be performed
-SUB_STRONG = function SUB_STRONG(y) {
+function SUB_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberSub(this, y);
   }
@@ -306,15 +236,15 @@ SUB_STRONG = function SUB_STRONG(y) {
 
 
 // ECMA-262, section 11.5.1, page 48.
-MUL = function MUL(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function MUL(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberMul(x, y);
 }
 
 
 // Strong mode MUL throws if an implicit conversion would be performed
-MUL_STRONG = function MUL_STRONG(y) {
+function MUL_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberMul(this, y);
   }
@@ -323,15 +253,15 @@ MUL_STRONG = function MUL_STRONG(y) {
 
 
 // ECMA-262, section 11.5.2, page 49.
-DIV = function DIV(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function DIV(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberDiv(x, y);
 }
 
 
 // Strong mode DIV throws if an implicit conversion would be performed
-DIV_STRONG = function DIV_STRONG(y) {
+function DIV_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberDiv(this, y);
   }
@@ -340,15 +270,15 @@ DIV_STRONG = function DIV_STRONG(y) {
 
 
 // ECMA-262, section 11.5.3, page 49.
-MOD = function MOD(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function MOD(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberMod(x, y);
 }
 
 
 // Strong mode MOD throws if an implicit conversion would be performed
-MOD_STRONG = function MOD_STRONG(y) {
+function MOD_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberMod(this, y);
   }
@@ -362,15 +292,15 @@ MOD_STRONG = function MOD_STRONG(y) {
 */
 
 // ECMA-262, section 11.10, page 57.
-BIT_OR = function BIT_OR(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function BIT_OR(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberOr(x, y);
 }
 
 
 // Strong mode BIT_OR throws if an implicit conversion would be performed
-BIT_OR_STRONG = function BIT_OR_STRONG(y) {
+function BIT_OR_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberOr(this, y);
   }
@@ -379,18 +309,18 @@ BIT_OR_STRONG = function BIT_OR_STRONG(y) {
 
 
 // ECMA-262, section 11.10, page 57.
-BIT_AND = function BIT_AND(y) {
+function BIT_AND(y) {
   var x;
   if (IS_NUMBER(this)) {
     x = this;
-    if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+    if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   } else {
-    x = %$nonNumberToNumber(this);
+    x = %NonNumberToNumber(this);
     // Make sure to convert the right operand to a number before
     // bailing out in the fast case, but after converting the
     // left operand. This ensures that valueOf methods on the right
     // operand are always executed.
-    if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+    if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
     // Optimize for the case where we end up AND'ing a value
     // that doesn't convert to a number. This is common in
     // certain benchmarks.
@@ -401,7 +331,7 @@ BIT_AND = function BIT_AND(y) {
 
 
 // Strong mode BIT_AND throws if an implicit conversion would be performed
-BIT_AND_STRONG = function BIT_AND_STRONG(y) {
+function BIT_AND_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberAnd(this, y);
   }
@@ -410,15 +340,15 @@ BIT_AND_STRONG = function BIT_AND_STRONG(y) {
 
 
 // ECMA-262, section 11.10, page 57.
-BIT_XOR = function BIT_XOR(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function BIT_XOR(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberXor(x, y);
 }
 
 
 // Strong mode BIT_XOR throws if an implicit conversion would be performed
-BIT_XOR_STRONG = function BIT_XOR_STRONG(y) {
+function BIT_XOR_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberXor(this, y);
   }
@@ -427,15 +357,15 @@ BIT_XOR_STRONG = function BIT_XOR_STRONG(y) {
 
 
 // ECMA-262, section 11.7.1, page 51.
-SHL = function SHL(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function SHL(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberShl(x, y);
 }
 
 
 // Strong mode SHL throws if an implicit conversion would be performed
-SHL_STRONG = function SHL_STRONG(y) {
+function SHL_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberShl(this, y);
   }
@@ -444,18 +374,18 @@ SHL_STRONG = function SHL_STRONG(y) {
 
 
 // ECMA-262, section 11.7.2, page 51.
-SAR = function SAR(y) {
+function SAR(y) {
   var x;
   if (IS_NUMBER(this)) {
     x = this;
-    if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+    if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   } else {
-    x = %$nonNumberToNumber(this);
+    x = %NonNumberToNumber(this);
     // Make sure to convert the right operand to a number before
     // bailing out in the fast case, but after converting the
     // left operand. This ensures that valueOf methods on the right
     // operand are always executed.
-    if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+    if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
     // Optimize for the case where we end up shifting a value
     // that doesn't convert to a number. This is common in
     // certain benchmarks.
@@ -466,7 +396,7 @@ SAR = function SAR(y) {
 
 
 // Strong mode SAR throws if an implicit conversion would be performed
-SAR_STRONG = function SAR_STRONG(y) {
+function SAR_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberSar(this, y);
   }
@@ -475,15 +405,15 @@ SAR_STRONG = function SAR_STRONG(y) {
 
 
 // ECMA-262, section 11.7.3, page 52.
-SHR = function SHR(y) {
-  var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
-  if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
+function SHR(y) {
+  var x = IS_NUMBER(this) ? this : %NonNumberToNumber(this);
+  if (!IS_NUMBER(y)) y = %NonNumberToNumber(y);
   return %NumberShr(x, y);
 }
 
 
 // Strong mode SHR throws if an implicit conversion would be performed
-SHR_STRONG = function SHR_STRONG(y) {
+function SHR_STRONG(y) {
   if (IS_NUMBER(this) && IS_NUMBER(y)) {
     return %NumberShr(this, y);
   }
@@ -497,13 +427,13 @@ SHR_STRONG = function SHR_STRONG(y) {
 */
 
 // ECMA-262, section 11.4.1, page 46.
-DELETE = function DELETE(key, language_mode) {
-  return %DeleteProperty(%$toObject(this), %$toName(key), language_mode);
+function DELETE(key, language_mode) {
+  return %DeleteProperty(%ToObject(this), %ToName(key), language_mode);
 }
 
 
 // ECMA-262, section 11.8.7, page 54.
-IN = function IN(x) {
+function IN(x) {
   if (!IS_SPEC_OBJECT(x)) {
     throw %MakeTypeError(kInvalidInOperatorUse, this, x);
   }
@@ -513,7 +443,7 @@ IN = function IN(x) {
     }
     return %HasElement(x, this);
   }
-  return %HasProperty(x, %$toName(this));
+  return %HasProperty(x, %ToName(this));
 }
 
 
@@ -521,7 +451,7 @@ IN = function IN(x) {
 // efficient, the return value should be zero if the 'this' is an
 // instance of F, and non-zero if not. This makes it possible to avoid
 // an expensive ToBoolean conversion in the generated code.
-INSTANCE_OF = function INSTANCE_OF(F) {
+function INSTANCE_OF(F) {
   var V = this;
   if (!IS_SPEC_FUNCTION(F)) {
     throw %MakeTypeError(kInstanceofFunctionExpected, F);
@@ -552,14 +482,14 @@ INSTANCE_OF = function INSTANCE_OF(F) {
 // Filter a given key against an object by checking if the object
 // has a property with the given key; return the key as a string if
 // it has. Otherwise returns 0 (smi). Used in for-in statements.
-FILTER_KEY = function FILTER_KEY(key) {
-  var string = %$toName(key);
+function FILTER_KEY(key) {
+  var string = %ToName(key);
   if (%HasProperty(this, string)) return string;
   return 0;
 }
 
 
-CALL_NON_FUNCTION = function CALL_NON_FUNCTION() {
+function CALL_NON_FUNCTION() {
   var delegate = %GetFunctionDelegate(this);
   if (!IS_FUNCTION(delegate)) {
     var callsite = %RenderCallSite();
@@ -570,7 +500,7 @@ CALL_NON_FUNCTION = function CALL_NON_FUNCTION() {
 }
 
 
-CALL_NON_FUNCTION_AS_CONSTRUCTOR = function CALL_NON_FUNCTION_AS_CONSTRUCTOR() {
+function CALL_NON_FUNCTION_AS_CONSTRUCTOR() {
   var delegate = %GetConstructorDelegate(this);
   if (!IS_FUNCTION(delegate)) {
     var callsite = %RenderCallSite();
@@ -581,7 +511,7 @@ CALL_NON_FUNCTION_AS_CONSTRUCTOR = function CALL_NON_FUNCTION_AS_CONSTRUCTOR() {
 }
 
 
-CALL_FUNCTION_PROXY = function CALL_FUNCTION_PROXY() {
+function CALL_FUNCTION_PROXY() {
   var arity = %_ArgumentsLength() - 1;
   var proxy = %_Arguments(arity);  // The proxy comes in as an additional arg.
   var trap = %GetCallTrap(proxy);
@@ -589,15 +519,14 @@ CALL_FUNCTION_PROXY = function CALL_FUNCTION_PROXY() {
 }
 
 
-CALL_FUNCTION_PROXY_AS_CONSTRUCTOR =
-    function CALL_FUNCTION_PROXY_AS_CONSTRUCTOR () {
+function CALL_FUNCTION_PROXY_AS_CONSTRUCTOR() {
   var proxy = this;
   var trap = %GetConstructTrap(proxy);
   return %Apply(trap, this, arguments, 0, %_ArgumentsLength());
 }
 
 
-APPLY_PREPARE = function APPLY_PREPARE(args) {
+function APPLY_PREPARE(args) {
   var length;
   // First check whether length is a positive Smi and args is an
   // array. This is the fast case. If this fails, we do the slow case
@@ -610,7 +539,7 @@ APPLY_PREPARE = function APPLY_PREPARE(args) {
     }
   }
 
-  length = (args == null) ? 0 : %$toUint32(args.length);
+  length = (args == null) ? 0 : %ToUint32(args.length);
 
   // We can handle any number of apply arguments if the stack is
   // big enough, but sanity check the value to avoid overflow when
@@ -618,7 +547,7 @@ APPLY_PREPARE = function APPLY_PREPARE(args) {
   if (length > kSafeArgumentsLength) throw %MakeRangeError(kStackOverflow);
 
   if (!IS_SPEC_FUNCTION(this)) {
-    throw %MakeTypeError(kApplyNonFunction, %$toString(this), typeof this);
+    throw %MakeTypeError(kApplyNonFunction, %ToString(this), typeof this);
   }
 
   // Make sure the arguments list has the right type.
@@ -632,7 +561,7 @@ APPLY_PREPARE = function APPLY_PREPARE(args) {
 }
 
 
-REFLECT_APPLY_PREPARE = function REFLECT_APPLY_PREPARE(args) {
+function REFLECT_APPLY_PREPARE(args) {
   var length;
   // First check whether length is a positive Smi and args is an
   // array. This is the fast case. If this fails, we do the slow case
@@ -646,14 +575,14 @@ REFLECT_APPLY_PREPARE = function REFLECT_APPLY_PREPARE(args) {
   }
 
   if (!IS_SPEC_FUNCTION(this)) {
-    throw %MakeTypeError(kCalledNonCallable, %$toString(this));
+    throw %MakeTypeError(kCalledNonCallable, %ToString(this));
   }
 
   if (!IS_SPEC_OBJECT(args)) {
     throw %MakeTypeError(kWrongArgs, "Reflect.apply");
   }
 
-  length = %$toLength(args.length);
+  length = %ToLength(args.length);
 
   // We can handle any number of apply arguments if the stack is
   // big enough, but sanity check the value to avoid overflow when
@@ -666,8 +595,7 @@ REFLECT_APPLY_PREPARE = function REFLECT_APPLY_PREPARE(args) {
 }
 
 
-REFLECT_CONSTRUCT_PREPARE = function REFLECT_CONSTRUCT_PREPARE(
-    args, newTarget) {
+function REFLECT_CONSTRUCT_PREPARE(args, newTarget) {
   var length;
   var ctorOk = IS_SPEC_FUNCTION(this) && %IsConstructor(this);
   var newTargetOk = IS_SPEC_FUNCTION(newTarget) && %IsConstructor(newTarget);
@@ -685,17 +613,17 @@ REFLECT_CONSTRUCT_PREPARE = function REFLECT_CONSTRUCT_PREPARE(
 
   if (!ctorOk) {
     if (!IS_SPEC_FUNCTION(this)) {
-      throw %MakeTypeError(kCalledNonCallable, %$toString(this));
+      throw %MakeTypeError(kCalledNonCallable, %ToString(this));
     } else {
-      throw %MakeTypeError(kNotConstructor, %$toString(this));
+      throw %MakeTypeError(kNotConstructor, %ToString(this));
     }
   }
 
   if (!newTargetOk) {
     if (!IS_SPEC_FUNCTION(newTarget)) {
-      throw %MakeTypeError(kCalledNonCallable, %$toString(newTarget));
+      throw %MakeTypeError(kCalledNonCallable, %ToString(newTarget));
     } else {
-      throw %MakeTypeError(kNotConstructor, %$toString(newTarget));
+      throw %MakeTypeError(kNotConstructor, %ToString(newTarget));
     }
   }
 
@@ -703,7 +631,7 @@ REFLECT_CONSTRUCT_PREPARE = function REFLECT_CONSTRUCT_PREPARE(
     throw %MakeTypeError(kWrongArgs, "Reflect.construct");
   }
 
-  length = %$toLength(args.length);
+  length = %ToLength(args.length);
 
   // We can handle any number of apply arguments if the stack is
   // big enough, but sanity check the value to avoid overflow when
@@ -716,43 +644,32 @@ REFLECT_CONSTRUCT_PREPARE = function REFLECT_CONSTRUCT_PREPARE(
 }
 
 
-STACK_OVERFLOW = function STACK_OVERFLOW(length) {
+function STACK_OVERFLOW(length) {
   throw %MakeRangeError(kStackOverflow);
 }
 
 
 // Convert the receiver to an object - forward to ToObject.
-TO_OBJECT = function TO_OBJECT() {
-  return %$toObject(this);
+function TO_OBJECT() {
+  return %ToObject(this);
 }
 
 
 // Convert the receiver to a number - forward to ToNumber.
-TO_NUMBER = function TO_NUMBER() {
-  return %$toNumber(this);
+function TO_NUMBER() {
+  return %ToNumber(this);
 }
 
 
 // Convert the receiver to a string - forward to ToString.
-TO_STRING = function TO_STRING() {
-  return %$toString(this);
+function TO_STRING() {
+  return %ToString(this);
 }
 
 
 // Convert the receiver to a string or symbol - forward to ToName.
-TO_NAME = function TO_NAME() {
-  return %$toName(this);
-}
-
-
-/* -----------------------------------------------
-   - - -   J a v a S c r i p t   S t u b s   - - -
-   -----------------------------------------------
-*/
-
-STRING_LENGTH_STUB = function STRING_LENGTH_STUB(name) {
-  var receiver = this;  // implicit first parameter
-  return %_StringGetLength(%_JSValueGetValue(receiver));
+function TO_NAME() {
+  return %ToName(this);
 }
 
 
@@ -770,7 +687,7 @@ function ToPrimitive(x, hint) {
   if (!IS_SPEC_OBJECT(x)) return x;
   if (IS_SYMBOL_WRAPPER(x)) throw MakeTypeError(kSymbolToPrimitive);
   if (hint == NO_HINT) hint = (IS_DATE(x)) ? STRING_HINT : NUMBER_HINT;
-  return (hint == NUMBER_HINT) ? DefaultNumber(x) : DefaultString(x);
+  return (hint == NUMBER_HINT) ? %DefaultNumber(x) : %DefaultString(x);
 }
 
 
@@ -794,7 +711,7 @@ function ToNumber(x) {
   if (IS_BOOLEAN(x)) return x ? 1 : 0;
   if (IS_UNDEFINED(x)) return NAN;
   if (IS_SYMBOL(x)) throw MakeTypeError(kSymbolToNumber);
-  return (IS_NULL(x)) ? 0 : ToNumber(DefaultNumber(x));
+  return (IS_NULL(x)) ? 0 : ToNumber(%DefaultNumber(x));
 }
 
 function NonNumberToNumber(x) {
@@ -805,7 +722,7 @@ function NonNumberToNumber(x) {
   if (IS_BOOLEAN(x)) return x ? 1 : 0;
   if (IS_UNDEFINED(x)) return NAN;
   if (IS_SYMBOL(x)) throw MakeTypeError(kSymbolToNumber);
-  return (IS_NULL(x)) ? 0 : ToNumber(DefaultNumber(x));
+  return (IS_NULL(x)) ? 0 : ToNumber(%DefaultNumber(x));
 }
 
 
@@ -815,33 +732,33 @@ function ToString(x) {
   if (IS_NUMBER(x)) return %_NumberToString(x);
   if (IS_BOOLEAN(x)) return x ? 'true' : 'false';
   if (IS_UNDEFINED(x)) return 'undefined';
-  if (IS_SYMBOL(x)) throw MakeTypeError(kSymbolToString);
-  return (IS_NULL(x)) ? 'null' : ToString(DefaultString(x));
+  if (IS_SYMBOL(x)) throw %MakeTypeError(kSymbolToString);
+  return (IS_NULL(x)) ? 'null' : %ToString(%DefaultString(x));
 }
 
 function NonStringToString(x) {
   if (IS_NUMBER(x)) return %_NumberToString(x);
   if (IS_BOOLEAN(x)) return x ? 'true' : 'false';
   if (IS_UNDEFINED(x)) return 'undefined';
-  if (IS_SYMBOL(x)) throw MakeTypeError(kSymbolToString);
-  return (IS_NULL(x)) ? 'null' : ToString(DefaultString(x));
+  if (IS_SYMBOL(x)) throw %MakeTypeError(kSymbolToString);
+  return (IS_NULL(x)) ? 'null' : %ToString(%DefaultString(x));
 }
 
 
 // ES6 symbols
 function ToName(x) {
-  return IS_SYMBOL(x) ? x : ToString(x);
+  return IS_SYMBOL(x) ? x : %ToString(x);
 }
 
 
 // ECMA-262, section 9.9, page 36.
 function ToObject(x) {
-  if (IS_STRING(x)) return new GlobalString(x);
-  if (IS_NUMBER(x)) return new GlobalNumber(x);
-  if (IS_BOOLEAN(x)) return new GlobalBoolean(x);
+  if (IS_STRING(x)) return new $String(x);
+  if (IS_NUMBER(x)) return new $Number(x);
+  if (IS_BOOLEAN(x)) return new $Boolean(x);
   if (IS_SYMBOL(x)) return %NewSymbolWrapper(x);
   if (IS_NULL_OR_UNDEFINED(x) && !IS_UNDETECTABLE(x)) {
-    throw MakeTypeError(kUndefinedOrNullToObject);
+    throw %MakeTypeError(kUndefinedOrNullToObject);
   }
   return x;
 }
@@ -858,8 +775,7 @@ function ToInteger(x) {
 function ToLength(arg) {
   arg = ToInteger(arg);
   if (arg < 0) return 0;
-  return arg < GlobalNumber.MAX_SAFE_INTEGER ? arg
-                                             : GlobalNumber.MAX_SAFE_INTEGER;
+  return arg < $Number.MAX_SAFE_INTEGER ? arg : $Number.MAX_SAFE_INTEGER;
 }
 
 
@@ -890,7 +806,6 @@ function SameValue(x, y) {
   return x === y;
 }
 
-
 // ES6, section 7.2.4
 function SameValueZero(x, y) {
   if (typeof x != typeof y) return false;
@@ -931,16 +846,16 @@ function DefaultNumber(x) {
     var valueOf = x.valueOf;
     if (IS_SPEC_FUNCTION(valueOf)) {
       var v = %_CallFunction(x, valueOf);
-      if (IsPrimitive(v)) return v;
+      if (%IsPrimitive(v)) return v;
     }
 
     var toString = x.toString;
     if (IS_SPEC_FUNCTION(toString)) {
       var s = %_CallFunction(x, toString);
-      if (IsPrimitive(s)) return s;
+      if (%IsPrimitive(s)) return s;
     }
   }
-  throw MakeTypeError(kCannotConvertToPrimitive);
+  throw %MakeTypeError(kCannotConvertToPrimitive);
 }
 
 // ECMA-262, section 8.6.2.6, page 28.
@@ -949,16 +864,16 @@ function DefaultString(x) {
     var toString = x.toString;
     if (IS_SPEC_FUNCTION(toString)) {
       var s = %_CallFunction(x, toString);
-      if (IsPrimitive(s)) return s;
+      if (%IsPrimitive(s)) return s;
     }
 
     var valueOf = x.valueOf;
     if (IS_SPEC_FUNCTION(valueOf)) {
       var v = %_CallFunction(x, valueOf);
-      if (IsPrimitive(v)) return v;
+      if (%IsPrimitive(v)) return v;
     }
   }
-  throw MakeTypeError(kCannotConvertToPrimitive);
+  throw %MakeTypeError(kCannotConvertToPrimitive);
 }
 
 function ToPositiveInteger(x, rangeErrorIndex) {
@@ -967,34 +882,21 @@ function ToPositiveInteger(x, rangeErrorIndex) {
   return i;
 }
 
-//----------------------------------------------------------------------------
 
 // NOTE: Setting the prototype for Array must take place as early as
 // possible due to code generation for array literals.  When
 // generating code for a array literal a boilerplate array is created
 // that is cloned when running the code.  It is essential that the
 // boilerplate gets the right prototype.
-%FunctionSetPrototype(GlobalArray, new GlobalArray(0));
-
-//----------------------------------------------------------------------------
-
-$defaultNumber = DefaultNumber;
-$defaultString = DefaultString;
-$NaN = %GetRootNaN();
-$nonNumberToNumber = NonNumberToNumber;
-$nonStringToString = NonStringToString;
-$sameValue = SameValue;
-$sameValueZero = SameValueZero;
-$toBoolean = ToBoolean;
-$toInt32 = ToInt32;
-$toInteger = ToInteger;
-$toLength = ToLength;
-$toName = ToName;
-$toNumber = ToNumber;
-$toObject = ToObject;
-$toPositiveInteger = ToPositiveInteger;
-$toPrimitive = ToPrimitive;
-$toString = ToString;
-$toUint32 = ToUint32;
-
-})();
+%FunctionSetPrototype($Array, new $Array(0));
+
+
+/* -----------------------------------------------
+   - - -   J a v a S c r i p t   S t u b s   - - -
+   -----------------------------------------------
+*/
+
+function STRING_LENGTH_STUB(name) {
+  var receiver = this;  // implicit first parameter
+  return %_StringGetLength(%_JSValueGetValue(receiver));
+}
index 200cc6c..0eaaffb 100644 (file)
@@ -39,7 +39,7 @@ function StringIteratorIterator() {
 
 // 21.1.5.2.1 %StringIteratorPrototype%.next( )
 function StringIteratorNext() {
-  var iterator = $toObject(this);
+  var iterator = ToObject(this);
 
   if (!HAS_DEFINED_PRIVATE(iterator, stringIteratorNextIndexSymbol)) {
     throw MakeTypeError(kIncompatibleMethodReceiver,
index a9cf866..85d8dbc 100644 (file)
@@ -113,7 +113,7 @@ function StringLastIndexOfJS(pat /* position */) {  // length == 1
   var patLength = pat.length;
   var index = subLength - patLength;
   if (%_ArgumentsLength() > 1) {
-    var position = $toNumber(%_Arguments(1));
+    var position = ToNumber(%_Arguments(1));
     if (!NUMBER_IS_NAN(position)) {
       position = TO_INTEGER(position);
       if (position < 0) {
@@ -803,7 +803,7 @@ function StringTrimRight() {
 function StringFromCharCode(code) {
   var n = %_ArgumentsLength();
   if (n == 1) {
-    if (!%_IsSmi(code)) code = $toNumber(code);
+    if (!%_IsSmi(code)) code = ToNumber(code);
     return %_StringCharFromCode(code & 0xffff);
   }
 
@@ -811,7 +811,7 @@ function StringFromCharCode(code) {
   var i;
   for (i = 0; i < n; i++) {
     var code = %_Arguments(i);
-    if (!%_IsSmi(code)) code = $toNumber(code) & 0xffff;
+    if (!%_IsSmi(code)) code = ToNumber(code) & 0xffff;
     if (code < 0) code = code & 0xffff;
     if (code > 0xff) break;
     %_OneByteSeqStringSetChar(i, code, one_byte);
@@ -822,7 +822,7 @@ function StringFromCharCode(code) {
   var two_byte = %NewString(n - i, NEW_TWO_BYTE_STRING);
   for (var j = 0; i < n; i++, j++) {
     var code = %_Arguments(i);
-    if (!%_IsSmi(code)) code = $toNumber(code) & 0xffff;
+    if (!%_IsSmi(code)) code = ToNumber(code) & 0xffff;
     %_TwoByteSeqStringSetChar(j, code, two_byte);
   }
   return one_byte + two_byte;
@@ -930,7 +930,7 @@ function StringRepeat(count) {
   CHECK_OBJECT_COERCIBLE(this, "String.prototype.repeat");
 
   var s = TO_STRING_INLINE(this);
-  var n = $toInteger(count);
+  var n = ToInteger(count);
   // The maximum string length is stored in a smi, so a longer repeat
   // must result in a range error.
   if (n < 0 || n > %_MaxSmi()) throw MakeRangeError(kInvalidCountValue);
@@ -959,7 +959,7 @@ function StringStartsWith(searchString /* position */) {  // length == 1
   var pos = 0;
   if (%_ArgumentsLength() > 1) {
     pos = %_Arguments(1);  // position
-    pos = $toInteger(pos);
+    pos = ToInteger(pos);
   }
 
   var s_len = s.length;
@@ -989,7 +989,7 @@ function StringEndsWith(searchString /* position */) {  // length == 1
   if (%_ArgumentsLength() > 1) {
     var arg = %_Arguments(1);  // position
     if (!IS_UNDEFINED(arg)) {
-      pos = $toInteger(arg);
+      pos = ToInteger(arg);
     }
   }
 
@@ -1018,7 +1018,7 @@ function StringIncludes(searchString /* position */) {  // length == 1
   var pos = 0;
   if (%_ArgumentsLength() > 1) {
     pos = %_Arguments(1);  // position
-    pos = $toInteger(pos);
+    pos = ToInteger(pos);
   }
 
   var s_len = s.length;
@@ -1063,7 +1063,7 @@ function StringFromCodePoint(_) {  // length = 1
   for (index = 0; index < length; index++) {
     code = %_Arguments(index);
     if (!%_IsSmi(code)) {
-      code = $toNumber(code);
+      code = ToNumber(code);
     }
     if (code < 0 || code > 0x10FFFF || code !== TO_INTEGER(code)) {
       throw MakeRangeError(kInvalidCodePoint, code);
@@ -1087,18 +1087,18 @@ function StringFromCodePoint(_) {  // length = 1
 function StringRaw(callSite) {
   // TODO(caitp): Use rest parameters when implemented
   var numberOfSubstitutions = %_ArgumentsLength();
-  var cooked = $toObject(callSite);
-  var raw = $toObject(cooked.raw);
-  var literalSegments = $toLength(raw.length);
+  var cooked = ToObject(callSite);
+  var raw = ToObject(cooked.raw);
+  var literalSegments = ToLength(raw.length);
   if (literalSegments <= 0) return "";
 
-  var result = $toString(raw[0]);
+  var result = ToString(raw[0]);
 
   for (var i = 1; i < literalSegments; ++i) {
     if (i < numberOfSubstitutions) {
-      result += $toString(%_Arguments(i));
+      result += ToString(%_Arguments(i));
     }
-    result += $toString(raw[i]);
+    result += ToString(raw[i]);
   }
 
   return result;
index 8105013..72aa4d6 100644 (file)
@@ -26,7 +26,7 @@ var GlobalSymbol = global.Symbol;
 function SymbolConstructor(x) {
   if (%_IsConstructCall()) throw MakeTypeError(kNotConstructor, "Symbol");
   // NOTE: Passing in a Symbol value will throw on ToString().
-  return %CreateSymbol(IS_UNDEFINED(x) ? x : $toString(x));
+  return %CreateSymbol(IS_UNDEFINED(x) ? x : ToString(x));
 }
 
 
@@ -69,7 +69,7 @@ function SymbolKeyFor(symbol) {
 
 // ES6 19.1.2.8
 function ObjectGetOwnPropertySymbols(obj) {
-  obj = $toObject(obj);
+  obj = ToObject(obj);
 
   // TODO(arv): Proxies use a shared trap for String and Symbol keys.
 
index 9269204..9f0f03e 100644 (file)
@@ -38,10 +38,10 @@ macro TYPED_ARRAY_CONSTRUCTOR(ARRAY_ID, NAME, ELEMENT_SIZE)
 function NAMEConstructByArrayBuffer(obj, buffer, byteOffset, length) {
   if (!IS_UNDEFINED(byteOffset)) {
       byteOffset =
-          $toPositiveInteger(byteOffset, kInvalidTypedArrayLength);
+          ToPositiveInteger(byteOffset, kInvalidTypedArrayLength);
   }
   if (!IS_UNDEFINED(length)) {
-      length = $toPositiveInteger(length, kInvalidTypedArrayLength);
+      length = ToPositiveInteger(length, kInvalidTypedArrayLength);
   }
 
   var bufferByteLength = %_ArrayBufferGetByteLength(buffer);
@@ -82,7 +82,7 @@ function NAMEConstructByArrayBuffer(obj, buffer, byteOffset, length) {
 
 function NAMEConstructByLength(obj, length) {
   var l = IS_UNDEFINED(length) ?
-    0 : $toPositiveInteger(length, kInvalidTypedArrayLength);
+    0 : ToPositiveInteger(length, kInvalidTypedArrayLength);
   if (l > %_MaxSmi()) {
     throw MakeRangeError(kInvalidTypedArrayLength);
   }
@@ -97,7 +97,7 @@ function NAMEConstructByLength(obj, length) {
 
 function NAMEConstructByArrayLike(obj, arrayLike) {
   var length = arrayLike.length;
-  var l = $toPositiveInteger(length, kInvalidTypedArrayLength);
+  var l = ToPositiveInteger(length, kInvalidTypedArrayLength);
 
   if (l > %_MaxSmi()) {
     throw MakeRangeError(kInvalidTypedArrayLength);
@@ -335,7 +335,7 @@ function DataViewConstructor(buffer, byteOffset, byteLength) { // length = 3
   if (%_IsConstructCall()) {
     if (!IS_ARRAYBUFFER(buffer)) throw MakeTypeError(kDataViewNotArrayBuffer);
     if (!IS_UNDEFINED(byteOffset)) {
-        byteOffset = $toPositiveInteger(byteOffset, kInvalidDataViewOffset);
+        byteOffset = ToPositiveInteger(byteOffset, kInvalidDataViewOffset);
     }
     if (!IS_UNDEFINED(byteLength)) {
         byteLength = TO_INTEGER(byteLength);
@@ -392,6 +392,10 @@ macro DATA_VIEW_TYPES(FUNCTION)
   FUNCTION(Float64)
 endmacro
 
+function ToPositiveDataViewOffset(offset) {
+  return ToPositiveInteger(offset, kInvalidDataViewAccessorOffset);
+}
+
 
 macro DATA_VIEW_GETTER_SETTER(TYPENAME)
 function DataViewGetTYPENAMEJS(offset, little_endian) {
@@ -400,8 +404,9 @@ function DataViewGetTYPENAMEJS(offset, little_endian) {
                         'DataView.getTYPENAME', this);
   }
   if (%_ArgumentsLength() < 1) throw MakeTypeError(kInvalidArgument);
-  offset = $toPositiveInteger(offset, kInvalidDataViewAccessorOffset);
-  return %DataViewGetTYPENAME(this, offset, !!little_endian);
+  return %DataViewGetTYPENAME(this,
+                          ToPositiveDataViewOffset(offset),
+                          !!little_endian);
 }
 
 function DataViewSetTYPENAMEJS(offset, value, little_endian) {
@@ -410,8 +415,10 @@ function DataViewSetTYPENAMEJS(offset, value, little_endian) {
                         'DataView.setTYPENAME', this);
   }
   if (%_ArgumentsLength() < 2) throw MakeTypeError(kInvalidArgument);
-  offset = $toPositiveInteger(offset, kInvalidDataViewAccessorOffset);
-  %DataViewSetTYPENAME(this, offset, TO_NUMBER_INLINE(value), !!little_endian);
+  %DataViewSetTYPENAME(this,
+                   ToPositiveDataViewOffset(offset),
+                   TO_NUMBER_INLINE(value),
+                   !!little_endian);
 }
 endmacro
 
index 8ba20ef..fdbd07e 100644 (file)
@@ -262,13 +262,13 @@ function Decode(uri, reserved) {
 
 // ECMA-262 - B.2.1.
 function URIEscapeJS(str) {
-  var s = $toString(str);
+  var s = ToString(str);
   return %URIEscape(s);
 }
 
 // ECMA-262 - B.2.2.
 function URIUnescapeJS(str) {
-  var s = $toString(str);
+  var s = ToString(str);
   return %URIUnescape(s);
 }
 
@@ -292,14 +292,14 @@ function URIDecode(uri) {
 
     return false;
   };
-  var string = $toString(uri);
+  var string = ToString(uri);
   return Decode(string, reservedPredicate);
 }
 
 // ECMA-262 - 15.1.3.2.
 function URIDecodeComponent(component) {
   var reservedPredicate = function(cc) { return false; };
-  var string = $toString(component);
+  var string = ToString(component);
   return Decode(string, reservedPredicate);
 }
 
@@ -326,7 +326,7 @@ function URIEncode(uri) {
 
     return false;
   };
-  var string = $toString(uri);
+  var string = ToString(uri);
   return Encode(string, unescapePredicate);
 }
 
@@ -347,7 +347,7 @@ function URIEncodeComponent(component) {
 
     return false;
   };
-  var string = $toString(component);
+  var string = ToString(component);
   return Encode(string, unescapePredicate);
 }
 
index e266880..2a6934c 100644 (file)
@@ -155,14 +155,14 @@ function SetUpLockedPrototype(constructor, fields, methods) {
 
 // ECMA 262 - 15.1.4
 function GlobalIsNaN(number) {
-  number = TO_NUMBER_INLINE(number);
+  if (!IS_NUMBER(number)) number = NonNumberToNumber(number);
   return NUMBER_IS_NAN(number);
 }
 
 
 // ECMA 262 - 15.1.5
 function GlobalIsFinite(number) {
-  number = TO_NUMBER_INLINE(number);
+  if (!IS_NUMBER(number)) number = NonNumberToNumber(number);
   return NUMBER_IS_FINITE(number);
 }
 
@@ -290,9 +290,9 @@ function ObjectHasOwnProperty(V) {
     if (IS_SYMBOL(V)) return false;
 
     var handler = %GetHandler(this);
-    return CallTrap1(handler, "hasOwn", $proxyDerivedHasOwnTrap, $toName(V));
+    return CallTrap1(handler, "hasOwn", $proxyDerivedHasOwnTrap, ToName(V));
   }
-  return %HasOwnProperty(TO_OBJECT_INLINE(this), $toName(V));
+  return %HasOwnProperty(TO_OBJECT_INLINE(this), ToName(V));
 }
 
 
@@ -306,7 +306,7 @@ function ObjectIsPrototypeOf(V) {
 
 // ECMA-262 - 15.2.4.6
 function ObjectPropertyIsEnumerable(V) {
-  var P = $toName(V);
+  var P = ToName(V);
   if (%_IsJSProxy(this)) {
     // TODO(rossberg): adjust once there is a story for symbols vs proxies.
     if (IS_SYMBOL(V)) return false;
@@ -331,7 +331,7 @@ function ObjectDefineGetter(name, fun) {
   desc.setGet(fun);
   desc.setEnumerable(true);
   desc.setConfigurable(true);
-  DefineOwnProperty(TO_OBJECT_INLINE(receiver), $toName(name), desc, false);
+  DefineOwnProperty(TO_OBJECT_INLINE(receiver), ToName(name), desc, false);
 }
 
 
@@ -340,7 +340,7 @@ function ObjectLookupGetter(name) {
   if (receiver == null && !IS_UNDETECTABLE(receiver)) {
     receiver = %GlobalProxy(global);
   }
-  return %LookupAccessor(TO_OBJECT_INLINE(receiver), $toName(name), GETTER);
+  return %LookupAccessor(TO_OBJECT_INLINE(receiver), ToName(name), GETTER);
 }
 
 
@@ -356,7 +356,7 @@ function ObjectDefineSetter(name, fun) {
   desc.setSet(fun);
   desc.setEnumerable(true);
   desc.setConfigurable(true);
-  DefineOwnProperty(TO_OBJECT_INLINE(receiver), $toName(name), desc, false);
+  DefineOwnProperty(TO_OBJECT_INLINE(receiver), ToName(name), desc, false);
 }
 
 
@@ -365,7 +365,7 @@ function ObjectLookupSetter(name) {
   if (receiver == null && !IS_UNDETECTABLE(receiver)) {
     receiver = %GlobalProxy(global);
   }
-  return %LookupAccessor(TO_OBJECT_INLINE(receiver), $toName(name), SETTER);
+  return %LookupAccessor(TO_OBJECT_INLINE(receiver), ToName(name), SETTER);
 }
 
 
@@ -458,11 +458,11 @@ function ToPropertyDescriptor(obj) {
   var desc = new PropertyDescriptor();
 
   if ("enumerable" in obj) {
-    desc.setEnumerable($toBoolean(obj.enumerable));
+    desc.setEnumerable(ToBoolean(obj.enumerable));
   }
 
   if ("configurable" in obj) {
-    desc.setConfigurable($toBoolean(obj.configurable));
+    desc.setConfigurable(ToBoolean(obj.configurable));
   }
 
   if ("value" in obj) {
@@ -470,7 +470,7 @@ function ToPropertyDescriptor(obj) {
   }
 
   if ("writable" in obj) {
-    desc.setWritable($toBoolean(obj.writable));
+    desc.setWritable(ToBoolean(obj.writable));
   }
 
   if ("get" in obj) {
@@ -667,7 +667,7 @@ function CallTrap2(handler, name, defaultTrap, x, y) {
 
 // ES5 section 8.12.1.
 function GetOwnPropertyJS(obj, v) {
-  var p = $toName(v);
+  var p = ToName(v);
   if (%_IsJSProxy(obj)) {
     // TODO(rossberg): adjust once there is a story for symbols vs proxies.
     if (IS_SYMBOL(v)) return UNDEFINED;
@@ -724,7 +724,7 @@ function DefineProxyProperty(obj, p, attributes, should_throw) {
 
   var handler = %GetHandler(obj);
   var result = CallTrap2(handler, "defineProperty", UNDEFINED, p, attributes);
-  if (!$toBoolean(result)) {
+  if (!ToBoolean(result)) {
     if (should_throw) {
       throw MakeTypeError(kProxyHandlerReturned,
                           handler, "false", "defineProperty");
@@ -738,7 +738,7 @@ function DefineProxyProperty(obj, p, attributes, should_throw) {
 
 // ES5 8.12.9.
 function DefineObjectProperty(obj, p, desc, should_throw) {
-  var current_array = %GetOwnProperty(obj, $toName(p));
+  var current_array = %GetOwnProperty(obj, ToName(p));
   var current = ConvertDescriptorArrayToDescriptor(current_array);
   var extensible = %IsExtensible(obj);
 
@@ -757,17 +757,17 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
     if ((IsGenericDescriptor(desc) ||
          IsDataDescriptor(desc) == IsDataDescriptor(current)) &&
         (!desc.hasEnumerable() ||
-         $sameValue(desc.isEnumerable(), current.isEnumerable())) &&
+         SameValue(desc.isEnumerable(), current.isEnumerable())) &&
         (!desc.hasConfigurable() ||
-         $sameValue(desc.isConfigurable(), current.isConfigurable())) &&
+         SameValue(desc.isConfigurable(), current.isConfigurable())) &&
         (!desc.hasWritable() ||
-         $sameValue(desc.isWritable(), current.isWritable())) &&
+         SameValue(desc.isWritable(), current.isWritable())) &&
         (!desc.hasValue() ||
-         $sameValue(desc.getValue(), current.getValue())) &&
+         SameValue(desc.getValue(), current.getValue())) &&
         (!desc.hasGetter() ||
-         $sameValue(desc.getGet(), current.getGet())) &&
+         SameValue(desc.getGet(), current.getGet())) &&
         (!desc.hasSetter() ||
-         $sameValue(desc.getSet(), current.getSet()))) {
+         SameValue(desc.getSet(), current.getSet()))) {
       return true;
     }
     if (!current.isConfigurable()) {
@@ -801,7 +801,7 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
             }
           }
           if (!current.isWritable() && desc.hasValue() &&
-              !$sameValue(desc.getValue(), current.getValue())) {
+              !SameValue(desc.getValue(), current.getValue())) {
             if (should_throw) {
               throw MakeTypeError(kRedefineDisallowed, p);
             } else {
@@ -811,15 +811,14 @@ function DefineObjectProperty(obj, p, desc, should_throw) {
         }
         // Step 11
         if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) {
-          if (desc.hasSetter() &&
-              !$sameValue(desc.getSet(), current.getSet())) {
+          if (desc.hasSetter() && !SameValue(desc.getSet(), current.getSet())) {
             if (should_throw) {
               throw MakeTypeError(kRedefineDisallowed, p);
             } else {
               return false;
             }
           }
-          if (desc.hasGetter() && !$sameValue(desc.getGet(),current.getGet())) {
+          if (desc.hasGetter() && !SameValue(desc.getGet(),current.getGet())) {
             if (should_throw) {
               throw MakeTypeError(kRedefineDisallowed, p);
             } else {
@@ -915,8 +914,8 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
     if (!desc.hasValue()) {
       return DefineObjectProperty(obj, "length", desc, should_throw);
     }
-    var new_length = $toUint32(desc.getValue());
-    if (new_length != $toNumber(desc.getValue())) {
+    var new_length = ToUint32(desc.getValue());
+    if (new_length != ToNumber(desc.getValue())) {
       throw MakeRangeError(kArrayLengthOutOfRange);
     }
     var length_desc = GetOwnPropertyJS(obj, "length");
@@ -939,7 +938,7 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
     }
 
     while (new_length < length--) {
-      var index = $toString(length);
+      var index = ToString(length);
       if (emit_splice) {
         var deletedDesc = GetOwnPropertyJS(obj, index);
         if (deletedDesc && deletedDesc.hasValue())
@@ -971,9 +970,9 @@ function DefineArrayProperty(obj, p, desc, should_throw) {
 
   // Step 4 - Special handling for array index.
   if (!IS_SYMBOL(p)) {
-    var index = $toUint32(p);
+    var index = ToUint32(p);
     var emit_splice = false;
-    if ($toString(index) == p && index != 4294967295) {
+    if (ToString(index) == p && index != 4294967295) {
       var length = obj.length;
       if (index >= length && %IsObserved(obj)) {
         emit_splice = true;
@@ -1056,12 +1055,12 @@ function ToNameArray(obj, trap, includeSymbols) {
   if (!IS_SPEC_OBJECT(obj)) {
     throw MakeTypeError(kProxyNonObjectPropNames, trap, obj);
   }
-  var n = $toUint32(obj.length);
+  var n = ToUint32(obj.length);
   var array = new GlobalArray(n);
   var realLength = 0;
   var names = { __proto__: null };  // TODO(rossberg): use sets once ready.
   for (var index = 0; index < n; index++) {
-    var s = $toName(obj[index]);
+    var s = ToName(obj[index]);
     // TODO(rossberg): adjust once there is a story for symbols vs proxies.
     if (IS_SYMBOL(s) && !includeSymbols) continue;
     if (%HasOwnProperty(names, s)) {
@@ -1130,7 +1129,7 @@ function ObjectGetOwnPropertyKeys(obj, filter) {
         }
       } else {
         if (filter & PROPERTY_ATTRIBUTES_STRING) continue;
-        name = $toString(name);
+        name = ToString(name);
       }
       if (seenKeys[name]) continue;
       seenKeys[name] = true;
@@ -1187,7 +1186,7 @@ function ObjectDefineProperty(obj, p, attributes) {
   if (!IS_SPEC_OBJECT(obj)) {
     throw MakeTypeError(kCalledOnNonObject, "Object.defineProperty");
   }
-  var name = $toName(p);
+  var name = ToName(p);
   if (%_IsJSProxy(obj)) {
     // Clone the attributes object for protection.
     // TODO(rossberg): not spec'ed yet, so not sure if this should involve
@@ -1411,7 +1410,7 @@ function ObjectIsExtensible(obj) {
 
 // ECMA-262, Edition 6, section 19.1.2.10
 function ObjectIs(obj1, obj2) {
-  return $sameValue(obj1, obj2);
+  return SameValue(obj1, obj2);
 }
 
 
@@ -1495,9 +1494,9 @@ InstallFunctions(GlobalObject, DONT_ENUM, [
 
 function BooleanConstructor(x) {
   if (%_IsConstructCall()) {
-    %_SetValueOf(this, $toBoolean(x));
+    %_SetValueOf(this, ToBoolean(x));
   } else {
-    return $toBoolean(x);
+    return ToBoolean(x);
   }
 }
 
@@ -1543,7 +1542,7 @@ InstallFunctions(GlobalBoolean.prototype, DONT_ENUM, [
 // Number
 
 function NumberConstructor(x) {
-  var value = %_ArgumentsLength() == 0 ? 0 : $toNumber(x);
+  var value = %_ArgumentsLength() == 0 ? 0 : ToNumber(x);
   if (%_IsConstructCall()) {
     %_SetValueOf(this, value);
   } else {
@@ -1656,7 +1655,7 @@ function NumberToPrecisionJS(precision) {
     // Get the value of this number in case it's an object.
     x = %_ValueOf(this);
   }
-  if (IS_UNDEFINED(precision)) return $toString(%_ValueOf(this));
+  if (IS_UNDEFINED(precision)) return ToString(%_ValueOf(this));
   var p = TO_INTEGER(precision);
 
   if (NUMBER_IS_NAN(x)) return "NaN";
@@ -1871,9 +1870,9 @@ function NewFunctionString(args, function_token) {
   var n = args.length;
   var p = '';
   if (n > 1) {
-    p = $toString(args[0]);
+    p = ToString(args[0]);
     for (var i = 1; i < n - 1; i++) {
-      p += ',' + $toString(args[i]);
+      p += ',' + ToString(args[i]);
     }
     // If the formal parameters string include ) - an illegal
     // character - it may make the combined function expression
@@ -1886,7 +1885,7 @@ function NewFunctionString(args, function_token) {
     // comments we can include a trailing block comment to catch this.
     p += '\n/' + '**/';
   }
-  var body = (n > 0) ? $toString(args[n - 1]) : '';
+  var body = (n > 0) ? ToString(args[n - 1]) : '';
   return '(' + function_token + '(' + p + ') {\n' + body + '\n})';
 }
 
index a622af8..43ab38b 100644 (file)
@@ -158,7 +158,7 @@ TEST(RuntimeCallCPP2) {
 
 TEST(RuntimeCallJS) {
   FLAG_allow_natives_syntax = true;
-  FunctionTester T("(function(a) { return %$toString(a); })");
+  FunctionTester T("(function(a) { return %ToString(a); })");
 
   T.CheckCall(T.Val("23"), T.Val(23), T.undefined());
   T.CheckCall(T.Val("4.2"), T.Val(4.2), T.undefined());
index 36a7dea..6cb35e6 100644 (file)
 var obj1 = {x: 10, y: 11, z: "test"};
 var obj2 = {x: 10, y: 11, z: "test"};
 
-var sameValue = natives.$sameValue;
-
-assertTrue(sameValue(0, 0));
-assertTrue(sameValue(+0, +0));
-assertTrue(sameValue(-0, -0));
-assertTrue(sameValue(1, 1));
-assertTrue(sameValue(2, 2));
-assertTrue(sameValue(-1, -1));
-assertTrue(sameValue(0.5, 0.5));
-assertTrue(sameValue(true, true));
-assertTrue(sameValue(false, false));
-assertTrue(sameValue(NaN, NaN));
-assertTrue(sameValue(null, null));
-assertTrue(sameValue("foo", "foo"));
-assertTrue(sameValue(obj1, obj1));
+assertTrue(natives.SameValue(0, 0));
+assertTrue(natives.SameValue(+0, +0));
+assertTrue(natives.SameValue(-0, -0));
+assertTrue(natives.SameValue(1, 1));
+assertTrue(natives.SameValue(2, 2));
+assertTrue(natives.SameValue(-1, -1));
+assertTrue(natives.SameValue(0.5, 0.5));
+assertTrue(natives.SameValue(true, true));
+assertTrue(natives.SameValue(false, false));
+assertTrue(natives.SameValue(NaN, NaN));
+assertTrue(natives.SameValue(null, null));
+assertTrue(natives.SameValue("foo", "foo"));
+assertTrue(natives.SameValue(obj1, obj1));
 // Undefined values.
-assertTrue(sameValue());
-assertTrue(sameValue(undefined, undefined));
+assertTrue(natives.SameValue());
+assertTrue(natives.SameValue(undefined, undefined));
 
-assertFalse(sameValue(0,1));
-assertFalse(sameValue("foo", "bar"));
-assertFalse(sameValue(obj1, obj2));
-assertFalse(sameValue(true, false));
+assertFalse(natives.SameValue(0,1));
+assertFalse(natives.SameValue("foo", "bar"));
+assertFalse(natives.SameValue(obj1, obj2));
+assertFalse(natives.SameValue(true, false));
 
-assertFalse(sameValue(obj1, true));
-assertFalse(sameValue(obj1, "foo"));
-assertFalse(sameValue(obj1, 1));
-assertFalse(sameValue(obj1, undefined));
-assertFalse(sameValue(obj1, NaN));
+assertFalse(natives.SameValue(obj1, true));
+assertFalse(natives.SameValue(obj1, "foo"));
+assertFalse(natives.SameValue(obj1, 1));
+assertFalse(natives.SameValue(obj1, undefined));
+assertFalse(natives.SameValue(obj1, NaN));
 
-assertFalse(sameValue(undefined, true));
-assertFalse(sameValue(undefined, "foo"));
-assertFalse(sameValue(undefined, 1));
-assertFalse(sameValue(undefined, obj1));
-assertFalse(sameValue(undefined, NaN));
+assertFalse(natives.SameValue(undefined, true));
+assertFalse(natives.SameValue(undefined, "foo"));
+assertFalse(natives.SameValue(undefined, 1));
+assertFalse(natives.SameValue(undefined, obj1));
+assertFalse(natives.SameValue(undefined, NaN));
 
-assertFalse(sameValue(NaN, true));
-assertFalse(sameValue(NaN, "foo"));
-assertFalse(sameValue(NaN, 1));
-assertFalse(sameValue(NaN, obj1));
-assertFalse(sameValue(NaN, undefined));
+assertFalse(natives.SameValue(NaN, true));
+assertFalse(natives.SameValue(NaN, "foo"));
+assertFalse(natives.SameValue(NaN, 1));
+assertFalse(natives.SameValue(NaN, obj1));
+assertFalse(natives.SameValue(NaN, undefined));
 
-assertFalse(sameValue("foo", true));
-assertFalse(sameValue("foo", 1));
-assertFalse(sameValue("foo", obj1));
-assertFalse(sameValue("foo", undefined));
-assertFalse(sameValue("foo", NaN));
+assertFalse(natives.SameValue("foo", true));
+assertFalse(natives.SameValue("foo", 1));
+assertFalse(natives.SameValue("foo", obj1));
+assertFalse(natives.SameValue("foo", undefined));
+assertFalse(natives.SameValue("foo", NaN));
 
-assertFalse(sameValue(true, 1));
-assertFalse(sameValue(true, obj1));
-assertFalse(sameValue(true, undefined));
-assertFalse(sameValue(true, NaN));
-assertFalse(sameValue(true, "foo"));
+assertFalse(natives.SameValue(true, 1));
+assertFalse(natives.SameValue(true, obj1));
+assertFalse(natives.SameValue(true, undefined));
+assertFalse(natives.SameValue(true, NaN));
+assertFalse(natives.SameValue(true, "foo"));
 
-assertFalse(sameValue(1, true));
-assertFalse(sameValue(1, obj1));
-assertFalse(sameValue(1, undefined));
-assertFalse(sameValue(1, NaN));
-assertFalse(sameValue(1, "foo"));
+assertFalse(natives.SameValue(1, true));
+assertFalse(natives.SameValue(1, obj1));
+assertFalse(natives.SameValue(1, undefined));
+assertFalse(natives.SameValue(1, NaN));
+assertFalse(natives.SameValue(1, "foo"));
 
 // Special string cases.
-assertFalse(sameValue("1", 1));
-assertFalse(sameValue("true", true));
-assertFalse(sameValue("false", false));
-assertFalse(sameValue("undefined", undefined));
-assertFalse(sameValue("NaN", NaN));
+assertFalse(natives.SameValue("1", 1));
+assertFalse(natives.SameValue("true", true));
+assertFalse(natives.SameValue("false", false));
+assertFalse(natives.SameValue("undefined", undefined));
+assertFalse(natives.SameValue("NaN", NaN));
 
 // -0 and +0 are should be different
-assertFalse(sameValue(+0, -0));
-assertFalse(sameValue(-0, +0));
+assertFalse(natives.SameValue(+0, -0));
+assertFalse(natives.SameValue(-0, +0));