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.