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

Side by Side Diff: test/mjsunit/harmony/to-number.js

Issue 1306303003: [es6] Implement spec compliant ToPrimitive in the runtime. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Address Michis comments. Created 5 years, 3 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
(Empty)
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Flags: --allow-natives-syntax
6
7 assertEquals(1, %ToNumber(1));
8 assertEquals(1, %_ToNumber(1));
9
10 assertEquals(.5, %ToNumber(.5));
11 assertEquals(.5, %_ToNumber(.5));
12
13 assertEquals(0, %ToNumber(null));
14 assertEquals(0, %_ToNumber(null));
15
16 assertEquals(1, %ToNumber(true));
17 assertEquals(1, %_ToNumber(true));
18
19 assertEquals(0, %ToNumber(false));
20 assertEquals(0, %_ToNumber(false));
21
22 assertEquals(NaN, %ToNumber(undefined));
23 assertEquals(NaN, %_ToNumber(undefined));
24
25 assertEquals(-1, %ToNumber("-1"));
26 assertEquals(-1, %_ToNumber("-1"));
27 assertEquals(123, %ToNumber("123"));
28 assertEquals(123, %_ToNumber("123"));
29 assertEquals(NaN, %ToNumber("random text"));
30 assertEquals(NaN, %_ToNumber("random text"));
31
32 assertThrows(function() { %ToNumber(Symbol.toPrimitive) }, TypeError);
33 assertThrows(function() { %_ToNumber(Symbol.toPrimitive) }, TypeError);
34
35 var a = { toString: function() { return 54321 }};
36 assertEquals(54321, %ToNumber(a));
37 assertEquals(54321, %_ToNumber(a));
38
39 var b = { valueOf: function() { return 42 }};
40 assertEquals(42, %ToNumber(b));
41 assertEquals(42, %_ToNumber(b));
42
43 var c = {
44 toString: function() { return "x"},
45 valueOf: function() { return 123 }
46 };
47 assertEquals(123, %ToNumber(c));
48 assertEquals(123, %_ToNumber(c));
49
50 var d = {
51 [Symbol.toPrimitive]: function(hint) {
52 assertEquals("number", hint);
53 return 987654321;
54 }
55 };
56 assertEquals(987654321, %ToNumber(d));
57 assertEquals(987654321, %_ToNumber(d));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698