From 62bd294f909ff448d0f876a3d745966a24cdc3f7 Mon Sep 17 00:00:00 2001 From: machenbach Date: Wed, 6 May 2015 13:03:03 -0700 Subject: [PATCH] Revert of Wrap runtime.js in a function. (patchset #2 id:20001 of https://codereview.chromium.org/1126213002/) 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} --- src/array-iterator.js | 4 +- src/array.js | 52 ++--- src/arraybuffer.js | 2 +- src/ast-value-factory.h | 2 +- src/bootstrapper.cc | 14 +- src/collection.js | 4 +- src/date.js | 114 ++++----- src/debug-debugger.js | 39 ++-- src/harmony-array-includes.js | 8 +- src/harmony-array.js | 22 +- src/harmony-regexp.js | 2 +- src/harmony-typedarray.js | 2 +- src/i18n.js | 16 +- src/json.js | 14 +- src/macros.py | 12 +- src/math.js | 16 +- src/messages.js | 4 +- src/mirror-debugger.js | 4 +- src/object-observe.js | 2 +- src/objects.h | 4 +- src/regexp.js | 6 +- src/runtime.js | 388 ++++++++++++------------------- src/string-iterator.js | 2 +- src/string.js | 30 +-- src/symbol.js | 4 +- src/typedarray.js | 25 +- src/uri.js | 12 +- src/v8natives.js | 83 ++++--- test/cctest/compiler/test-run-jscalls.cc | 2 +- test/mjsunit/samevalue.js | 114 +++++---- 30 files changed, 454 insertions(+), 549 deletions(-) diff --git a/src/array-iterator.js b/src/array-iterator.js index 5e69b23..45a432e 100644 --- a/src/array-iterator.js +++ b/src/array-iterator.js @@ -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, diff --git a/src/array.js b/src/array.js index bf24d16..8e01394 100644 --- a/src/array.js +++ b/src/array.js @@ -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); diff --git a/src/arraybuffer.js b/src/arraybuffer.js index a426b82..11b3c46 100644 --- a/src/arraybuffer.js +++ b/src/arraybuffer.js @@ -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"); diff --git a/src/ast-value-factory.h b/src/ast-value-factory.h index 454a755..3252bfd 100644 --- a/src/ast-value-factory.h +++ b/src/ast-value-factory.h @@ -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") \ diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index 9eca9e8..cec7e9e 100644 --- a/src/bootstrapper.cc +++ b/src/bootstrapper.cc @@ -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); diff --git a/src/collection.js b/src/collection.js index 9ebe186..10e0295 100644 --- a/src/collection.js +++ b/src/collection.js @@ -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); } } diff --git a/src/date.js b/src/date.js index e505a05..4bf5340 100644 --- a/src/date.js +++ b/src/date.js @@ -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; } diff --git a/src/debug-debugger.js b/src/debug-debugger.js index 991af11..f92bcda 100644 --- a/src/debug-debugger.js +++ b/src/debug-debugger.js @@ -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 + '"'); } diff --git a/src/harmony-array-includes.js b/src/harmony-array-includes.js index dc54469..c8cf788 100644 --- a/src/harmony-array-includes.js +++ b/src/harmony-array-includes.js @@ -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; } diff --git a/src/harmony-array.js b/src/harmony-array.js index 3a46bad..5637917 100644 --- a/src/harmony-array.js +++ b/src/harmony-array.js @@ -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]; diff --git a/src/harmony-regexp.js b/src/harmony-regexp.js index 3689bec..f8e721f 100644 --- a/src/harmony-regexp.js +++ b/src/harmony-regexp.js @@ -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'; diff --git a/src/harmony-typedarray.js b/src/harmony-typedarray.js index 9b7cd0d..6a69608 100644 --- a/src/harmony-typedarray.js +++ b/src/harmony-typedarray.js @@ -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); } } diff --git a/src/i18n.js b/src/i18n.js index d0c890b..ec6518a 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -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 ); diff --git a/src/json.js b/src/json.js index f20106a..26948fc 100644 --- a/src/json.js +++ b/src/json.js @@ -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) { diff --git a/src/macros.py b/src/macros.py index 9fd5442..7f99901 100644 --- a/src/macros.py +++ b/src/macros.py @@ -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)); diff --git a/src/math.js b/src/math.js index 16083d7..04c27b6 100644 --- a/src/math.js +++ b/src/math.js @@ -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); } diff --git a/src/messages.js b/src/messages.js index d2a922e..60c703d 100644 --- a/src/messages.js +++ b/src/messages.js @@ -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); diff --git a/src/mirror-debugger.js b/src/mirror-debugger.js index 9ea23d7..b293ba0 100644 --- a/src/mirror-debugger.js +++ b/src/mirror-debugger.js @@ -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); diff --git a/src/object-observe.js b/src/object-observe.js index 7228a06..f404f79 100644 --- a/src/object-observe.js +++ b/src/object-observe.js @@ -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); diff --git a/src/objects.h b/src/objects.h index 361a5f5..f56bdb2 100644 --- a/src/objects.h +++ b/src/objects.h @@ -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; diff --git a/src/regexp.js b/src/regexp.js index 9f5056b..9f89a6a 100644 --- a/src/regexp.js +++ b/src/regexp.js @@ -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); diff --git a/src/runtime.js b/src/runtime.js index 004f9bf..b425a2c 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -16,86 +16,16 @@ // 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)); +} diff --git a/src/string-iterator.js b/src/string-iterator.js index 200cc6c..0eaaffb 100644 --- a/src/string-iterator.js +++ b/src/string-iterator.js @@ -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, diff --git a/src/string.js b/src/string.js index a9cf866..85d8dbc 100644 --- a/src/string.js +++ b/src/string.js @@ -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; diff --git a/src/symbol.js b/src/symbol.js index 8105013..72aa4d6 100644 --- a/src/symbol.js +++ b/src/symbol.js @@ -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. diff --git a/src/typedarray.js b/src/typedarray.js index 9269204..9f0f03e 100644 --- a/src/typedarray.js +++ b/src/typedarray.js @@ -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 diff --git a/src/uri.js b/src/uri.js index 8ba20ef..fdbd07e 100644 --- a/src/uri.js +++ b/src/uri.js @@ -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); } diff --git a/src/v8natives.js b/src/v8natives.js index e266880..2a6934c 100644 --- a/src/v8natives.js +++ b/src/v8natives.js @@ -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})'; } diff --git a/test/cctest/compiler/test-run-jscalls.cc b/test/cctest/compiler/test-run-jscalls.cc index a622af8..43ab38b 100644 --- a/test/cctest/compiler/test-run-jscalls.cc +++ b/test/cctest/compiler/test-run-jscalls.cc @@ -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()); diff --git a/test/mjsunit/samevalue.js b/test/mjsunit/samevalue.js index 36a7dea..6cb35e6 100644 --- a/test/mjsunit/samevalue.js +++ b/test/mjsunit/samevalue.js @@ -32,73 +32,71 @@ 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)); -- 2.7.4