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

Side by Side Diff: tests/compiler/dart2js/js_backend_cps_ir_operators2_test.dart

Issue 1537663002: dart2js: Initial implementation of inlining. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Rebaseline test expectations and fix a bug (typo). Created 5 years 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 (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // Tests of operators. 5 // Tests of operators.
6 6
7 library operators_tests; 7 library operators_tests;
8 8
9 import 'js_backend_cps_ir.dart'; 9 import 'js_backend_cps_ir.dart';
10 10
11 const List<TestEntry> tests = const [ 11 const List<TestEntry> tests = const [
12 12
13 const TestEntry.forMethod('function(foo)', 13 const TestEntry(r"""
14 r"""
15 foo(a, b) => ((a & 0xff0000) >> 1) & b; 14 foo(a, b) => ((a & 0xff0000) >> 1) & b;
16 main() { 15 main() {
17 print(foo(123, 234)); 16 print(foo(123, 234));
18 print(foo(0, 2)); 17 print(foo(0, 2));
19 }""", r""" 18 }""", r"""
20 function(a, b) { 19 function() {
21 return (a & 16711680) >>> 1 & b; 20 P.print((123 & 16711680) >>> 1 & 234);
21 P.print((0 & 16711680) >>> 1 & 2);
22 }"""), 22 }"""),
23 23
24 const TestEntry.forMethod('function(foo)', 24 const TestEntry(r"""
25 r"""
26 foo(a) => ~a; 25 foo(a) => ~a;
27 main() { 26 main() {
28 print(foo(1)); 27 print(foo(1));
29 print(foo(10)); 28 print(foo(10));
30 }""", r""" 29 }""", r"""
31 function(a) { 30 function() {
32 return ~a >>> 0; 31 P.print(~1 >>> 0);
32 P.print(~10 >>> 0);
33 }"""), 33 }"""),
34 34
35 const TestEntry.forMethod('function(foo)', 35 const TestEntry.forMethod('function(foo)',
36 r""" 36 r"""
37 foo(a) => a % 13; 37 foo(a) => a % 13;
38 main() { 38 main() {
39 print(foo(5)); 39 print(foo(5));
40 print(foo(-100)); 40 print(foo(-100));
41 }""", r""" 41 }""", r"""
42 function(a) { 42 function(a) {
43 return C.JSInt_methods.$mod(a, 13); 43 var result = a % 13;
44 return result === 0 ? 0 : result > 0 ? result : 13 < 0 ? result - 13 : result + 13;
44 }"""), 45 }"""),
45 46
46 const TestEntry.forMethod('function(foo)', 47 const TestEntry(r"""
47 r"""
48 foo(a) => a % 13; 48 foo(a) => a % 13;
49 main() { 49 main() {
50 print(foo(5)); 50 print(foo(5));
51 print(foo(100)); 51 print(foo(100));
52 }""", r""" 52 }""", r"""
53 function(a) { 53 function() {
54 return a % 13; 54 P.print(5 % 13);
55 P.print(100 % 13);
55 }"""), 56 }"""),
56 57
57 const TestEntry.forMethod('function(foo)', 58 const TestEntry(r"""
58 r"""
59 foo(a) => a.remainder(13); 59 foo(a) => a.remainder(13);
60 main() { 60 main() {
61 print(foo(5)); 61 print(foo(5));
62 print(foo(-100)); 62 print(foo(-100));
63 }""", r""" 63 }""", r"""
64 function(a) { 64 function() {
65 return a % 13; 65 P.print(5 % 13);
66 P.print(-100 % 13);
66 }"""), 67 }"""),
67 68
68 const TestEntry.forMethod('function(foo)', 69 const TestEntry.forMethod('function(foo)',
69 r""" 70 r"""
70 foo(a) => a ~/ 13; 71 foo(a) => a ~/ 13;
71 main() { 72 main() {
72 print(foo(5)); 73 print(foo(5));
73 print(foo(-100)); 74 print(foo(-100));
74 }""", r""" 75 }""", r"""
75 function(a) { 76 function(a) {
76 return C.JSInt_methods.$tdiv(a, 13); 77 var v0;
78 return (a | 0) === a && (13 | 0) === 13 ? a / 13 | 0 : J.getInterceptor$n(v0 = a / 13).toInt$0(v0);
77 }"""), 79 }"""),
78 80
79 const TestEntry.forMethod('function(foo)', 81 const TestEntry(r"""
80 r"""
81 foo(a) => a ~/ 13; 82 foo(a) => a ~/ 13;
82 main() { 83 main() {
83 print(foo(5)); 84 print(foo(5));
84 print(foo(100)); 85 print(foo(100));
85 }""", r""" 86 }""", r"""
86 function(a) { 87 function() {
87 return a / 13 | 0; 88 P.print(5 / 13 | 0);
89 P.print(100 / 13 | 0);
88 }"""), 90 }"""),
89 91
90 const TestEntry.forMethod('function(foo)', 92 const TestEntry.forMethod('function(foo)',
91 r""" 93 r"""
92 foo(a) => a ~/ 13; 94 foo(a) => a ~/ 13;
93 main() { 95 main() {
94 print(foo(5)); 96 print(foo(5));
95 print(foo(8000000000)); 97 print(foo(8000000000));
96 }""", r""" 98 }""", r"""
97 function(a) { 99 function(a) {
98 return C.JSInt_methods.$tdiv(a, 13); 100 var v0;
101 return (a | 0) === a && (13 | 0) === 13 ? a / 13 | 0 : J.getInterceptor$n(v0 = a / 13).toInt$0(v0);
99 }"""), 102 }"""),
100 103
101 ]; 104 ];
102 105
103 void main() { 106 void main() {
104 runTests(tests); 107 runTests(tests);
105 } 108 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698