Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: src/v8natives.js

Issue 1384443002: [es6] Fix missing bits for full @@toPrimitive support. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove useless cctest. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function(global, utils) { 5 (function(global, utils) {
6 6
7 %CheckIsBootstrapping(); 7 %CheckIsBootstrapping();
8 8
9 // ---------------------------------------------------------------------------- 9 // ----------------------------------------------------------------------------
10 // Imports 10 // Imports
11 11
12 var FLAG_harmony_tostring; 12 var FLAG_harmony_tostring;
13 var GlobalArray = global.Array; 13 var GlobalArray = global.Array;
14 var GlobalBoolean = global.Boolean; 14 var GlobalBoolean = global.Boolean;
15 var GlobalFunction = global.Function; 15 var GlobalFunction = global.Function;
16 var GlobalNumber = global.Number; 16 var GlobalNumber = global.Number;
17 var GlobalObject = global.Object; 17 var GlobalObject = global.Object;
18 var InternalArray = utils.InternalArray; 18 var InternalArray = utils.InternalArray;
19 var iteratorSymbol = utils.ImportNow("iterator_symbol"); 19 var iteratorSymbol = utils.ImportNow("iterator_symbol");
20 var MathAbs; 20 var MathAbs;
21 var ProxyDelegateCallAndConstruct; 21 var ProxyDelegateCallAndConstruct;
22 var ProxyDerivedHasOwnTrap; 22 var ProxyDerivedHasOwnTrap;
23 var ProxyDerivedKeysTrap; 23 var ProxyDerivedKeysTrap;
24 var StringIndexOf; 24 var StringIndexOf;
25 var ToBoolean = utils.ImportNow("ToBoolean"); 25 var ToBoolean = utils.ImportNow("ToBoolean");
26 var ToNumber = utils.ImportNow("ToNumber");
27 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); 26 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
28 27
29 utils.Import(function(from) { 28 utils.Import(function(from) {
30 MathAbs = from.MathAbs; 29 MathAbs = from.MathAbs;
31 StringIndexOf = from.StringIndexOf; 30 StringIndexOf = from.StringIndexOf;
32 }); 31 });
33 32
34 utils.ImportFromExperimental(function(from) { 33 utils.ImportFromExperimental(function(from) {
35 FLAG_harmony_tostring = from.FLAG_harmony_tostring; 34 FLAG_harmony_tostring = from.FLAG_harmony_tostring;
36 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct; 35 ProxyDelegateCallAndConstruct = from.ProxyDelegateCallAndConstruct;
37 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap; 36 ProxyDerivedHasOwnTrap = from.ProxyDerivedHasOwnTrap;
38 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap; 37 ProxyDerivedKeysTrap = from.ProxyDerivedKeysTrap;
39 }); 38 });
40 39
41 // ---------------------------------------------------------------------------- 40 // ----------------------------------------------------------------------------
42 41
43 42
44 // ECMA 262 - 15.1.4 43 // ECMA 262 - 15.1.4
45 function GlobalIsNaN(number) { 44 function GlobalIsNaN(number) {
46 number = TO_NUMBER_INLINE(number); 45 number = TO_NUMBER(number);
47 return NUMBER_IS_NAN(number); 46 return NUMBER_IS_NAN(number);
48 } 47 }
49 48
50 49
51 // ECMA 262 - 15.1.5 50 // ECMA 262 - 15.1.5
52 function GlobalIsFinite(number) { 51 function GlobalIsFinite(number) {
53 number = TO_NUMBER_INLINE(number); 52 number = TO_NUMBER(number);
54 return NUMBER_IS_FINITE(number); 53 return NUMBER_IS_FINITE(number);
55 } 54 }
56 55
57 56
58 // ECMA-262 - 15.1.2.2 57 // ECMA-262 - 15.1.2.2
59 function GlobalParseInt(string, radix) { 58 function GlobalParseInt(string, radix) {
60 if (IS_UNDEFINED(radix) || radix === 10 || radix === 0) { 59 if (IS_UNDEFINED(radix) || radix === 10 || radix === 0) {
61 // Some people use parseInt instead of Math.floor. This 60 // Some people use parseInt instead of Math.floor. This
62 // optimization makes parseInt on a Smi 12 times faster (60ns 61 // optimization makes parseInt on a Smi 12 times faster (60ns
63 // vs 800ns). The following optimization makes parseInt on a 62 // vs 800ns). The following optimization makes parseInt on a
(...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after
1416 "valueOf", BooleanValueOf 1415 "valueOf", BooleanValueOf
1417 ]); 1416 ]);
1418 1417
1419 1418
1420 // ---------------------------------------------------------------------------- 1419 // ----------------------------------------------------------------------------
1421 // Number 1420 // Number
1422 1421
1423 function NumberConstructor(x) { 1422 function NumberConstructor(x) {
1424 // TODO(bmeurer): Move this to toplevel. 1423 // TODO(bmeurer): Move this to toplevel.
1425 "use strict"; 1424 "use strict";
1426 var value = %_ArgumentsLength() == 0 ? 0 : ToNumber(x); 1425 var value = %_ArgumentsLength() == 0 ? 0 : TO_NUMBER(x);
1427 if (%_IsConstructCall()) { 1426 if (%_IsConstructCall()) {
1428 %_SetValueOf(this, value); 1427 %_SetValueOf(this, value);
1429 } else { 1428 } else {
1430 return value; 1429 return value;
1431 } 1430 }
1432 } 1431 }
1433 1432
1434 1433
1435 // ECMA-262 section 15.7.4.2. 1434 // ECMA-262 section 15.7.4.2.
1436 function NumberToStringJS(radix) { 1435 function NumberToStringJS(radix) {
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
1843 %InstallToContext([ 1842 %InstallToContext([
1844 "global_eval_fun", GlobalEval, 1843 "global_eval_fun", GlobalEval,
1845 "object_value_of", ObjectValueOf, 1844 "object_value_of", ObjectValueOf,
1846 "object_to_string", ObjectToString, 1845 "object_to_string", ObjectToString,
1847 "object_define_own_property", DefineOwnPropertyFromAPI, 1846 "object_define_own_property", DefineOwnPropertyFromAPI,
1848 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor, 1847 "object_get_own_property_descriptor", ObjectGetOwnPropertyDescriptor,
1849 "to_complete_property_descriptor", ToCompletePropertyDescriptor, 1848 "to_complete_property_descriptor", ToCompletePropertyDescriptor,
1850 ]); 1849 ]);
1851 1850
1852 }) 1851 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698