Reviewers: Jakob,

Description:
Small polishing changes to the native js.

R=jkumme...@chromium.org

Please review this at https://codereview.chromium.org/1096763003/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+13, -20 lines):
  M src/i18n.js
  M src/macros.py
  M src/proxy.js
  M src/runtime.js
  M src/runtime/runtime.h
  M src/runtime/runtime-numbers.cc


Index: src/i18n.js
diff --git a/src/i18n.js b/src/i18n.js
index c743cad95a0e4ded70a1dd164a3a118080322cb8..e5dc8d2c370a1cc7843ffd13ca3719450e386890 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -14,7 +14,9 @@

 %CheckIsBootstrapping();

+var GlobalBoolean = global.Boolean;
 var GlobalDate = global.Date;
+var GlobalNumber = global.Number;
 var GlobalRegExp = global.RegExp;
 var GlobalString = global.String;

@@ -374,13 +376,13 @@ function getGetOption(options, caller) {
       var value = options[property];
       switch (type) {
         case 'boolean':
-          value = $Boolean(value);
+          value = GlobalBoolean(value);
           break;
         case 'string':
           value = GlobalString(value);
           break;
         case 'number':
-          value = $Number(value);
+          value = GlobalNumber(value);
           break;
         default:
           throw new $Error('Internal error. Wrong value type.');
@@ -1056,7 +1058,7 @@ function isWellFormedCurrencyCode(currency) {
 function getNumberOption(options, property, min, max, fallback) {
   var value = options[property];
   if (value !== undefined) {
-    value = $Number(value);
+    value = GlobalNumber(value);
     if ($isNaN(value) || value < min || value > max) {
       throw new $RangeError(property + ' value is out of range.');
     }
@@ -1272,7 +1274,7 @@ function initializeNumberFormat(numberFormat, locales, options) {
  */
 function formatNumber(formatter, value) {
   // Spec treats -0 and +0 as 0.
-  var number = $Number(value) + 0;
+  var number = GlobalNumber(value) + 0;

return %InternalNumberFormat(%GetImplFromInitializedIntlObject(formatter),
                                number);
@@ -1668,7 +1670,7 @@ function formatDate(formatter, dateValue) {
   if (dateValue === undefined) {
     dateMs = GlobalDate.now();
   } else {
-    dateMs = $Number(dateValue);
+    dateMs = GlobalNumber(dateValue);
   }

   if (!$isFinite(dateMs)) {
@@ -1980,12 +1982,12 @@ OverrideFunction(GlobalString.prototype, 'normalize', function(that) {
  * Formats a Number object (this) using locale and options values.
  * If locale or options are omitted, defaults are used.
  */
-OverrideFunction($Number.prototype, 'toLocaleString', function() {
+OverrideFunction(GlobalNumber.prototype, 'toLocaleString', function() {
     if (%_IsConstructCall()) {
       throw new $TypeError(ORDINARY_FUNCTION_CALLED_AS_CONSTRUCTOR);
     }

-    if (!(this instanceof $Number) && typeof(this) !== 'number') {
+    if (!(this instanceof GlobalNumber) && typeof(this) !== 'number') {
throw new $TypeError('Method invoked on an object that is not Number.');
     }

Index: src/macros.py
diff --git a/src/macros.py b/src/macros.py
index 2dab3b2bae1ac88ec3866eaac5de04867798c7ee..6038a71ae58340103e1aa8b0677c7295ae114897 100644
--- a/src/macros.py
+++ b/src/macros.py
@@ -169,7 +169,7 @@ macro SET_PRIVATE(obj, sym, val) = (obj[sym] = val);
 macro DELETE_PRIVATE(obj, sym) = (delete obj[sym]);

 # Constants.  The compiler constant folds them.
-const NAN = $NaN;
+const NAN = (0/0);
 const INFINITY = (1/0);
 const UNDEFINED = (void 0);

Index: src/proxy.js
diff --git a/src/proxy.js b/src/proxy.js
index 9f02705e37acdca5808a4c3f08d23be6ad335d2c..61b5e8fe9db29040591079828b51c69bc97dc669 100644
--- a/src/proxy.js
+++ b/src/proxy.js
@@ -16,6 +16,7 @@ var $proxyEnumerate;

 %CheckIsBootstrapping();

+var GlobalFunction = global.Function;
 var GlobalObject = global.Object;

 // -------------------------------------------------------------------
@@ -48,7 +49,7 @@ function ProxyCreateFunction(handler, callTrap, constructTrap) {
                         ["createFunction", "construct"])
   }
   return %CreateJSFunctionProxy(
-    handler, callTrap, constructTrap, $Function.prototype)
+    handler, callTrap, constructTrap, GlobalFunction.prototype)
 }

 // -------------------------------------------------------------------
@@ -57,7 +58,7 @@ function ProxyCreateFunction(handler, callTrap, constructTrap) {
 function DerivedConstructTrap(callTrap) {
   return function() {
     var proto = this.prototype
-    if (!IS_SPEC_OBJECT(proto)) proto = $Object.prototype
+    if (!IS_SPEC_OBJECT(proto)) proto = GlobalObject.prototype
     var obj = { __proto__: proto };
     var result = %Apply(callTrap, obj, arguments, 0, %_ArgumentsLength());
     return IS_SPEC_OBJECT(result) ? result : obj
Index: src/runtime.js
diff --git a/src/runtime.js b/src/runtime.js
index aaaa4fecba110c4e5e3edc0a88ea9f6a3e946e89..0e6c68eb369d9c27ced4ef030c844da6449b65b9 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -22,7 +22,6 @@ 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.
 function EQUALS(y) {
Index: src/runtime/runtime-numbers.cc
diff --git a/src/runtime/runtime-numbers.cc b/src/runtime/runtime-numbers.cc
index 79487237ee65bdd3f820e7f5d9575f320316bd17..78dd3cbef6754f8c1996d406d6367d8a18b4fa03 100644
--- a/src/runtime/runtime-numbers.cc
+++ b/src/runtime/runtime-numbers.cc
@@ -551,14 +551,6 @@ RUNTIME_FUNCTION(Runtime_SmiLexicographicCompare) {
 }


-RUNTIME_FUNCTION(Runtime_GetRootNaN) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 0);
-  RUNTIME_ASSERT(isolate->bootstrapper()->IsActive());
-  return isolate->heap()->nan_value();
-}
-
-
 RUNTIME_FUNCTION(Runtime_MaxSmi) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 0);
Index: src/runtime/runtime.h
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index 40f1c7e2caf5972bef41d657f9cf43b78f16ec7e..2d475bbec2b078eecc867fb94e5f643585754508 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -377,7 +377,6 @@ namespace internal {
   F(NumberEquals, 2, 1)                \
   F(NumberCompare, 3, 1)               \
   F(SmiLexicographicCompare, 2, 1)     \
-  F(GetRootNaN, 0, 1)                  \
   F(MaxSmi, 0, 1)                      \
   F(NumberToString, 1, 1)              \
   F(IsSmi, 1, 1)                       \


--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to