| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library eval_test; | 5 library eval_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 // Import mirrors to cause all mirrors to be retained by dart2js. | 9 // Import mirrors to cause all mirrors to be retained by dart2js. |
| 10 // The tests reflect on LinkedHashMap.length and String.length. | 10 // The tests reflect on LinkedHashMap.length and String.length. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 expectEval('5 % -2', 1); | 85 expectEval('5 % -2', 1); |
| 86 expectEval('-5 % 2', 1); | 86 expectEval('-5 % 2', 1); |
| 87 | 87 |
| 88 expectEval('1 == 1', true); | 88 expectEval('1 == 1', true); |
| 89 expectEval('1 == 2', false); | 89 expectEval('1 == 2', false); |
| 90 expectEval('1 == null', false); | 90 expectEval('1 == null', false); |
| 91 expectEval('1 != 1', false); | 91 expectEval('1 != 1', false); |
| 92 expectEval('1 != 2', true); | 92 expectEval('1 != 2', true); |
| 93 expectEval('1 != null', true); | 93 expectEval('1 != null', true); |
| 94 | 94 |
| 95 var x = {}; |
| 96 var y = {}; |
| 97 expectEval('x === y', true, null, {'x': x, 'y': x}); |
| 98 expectEval('x !== y', false, null, {'x': x, 'y': x}); |
| 99 expectEval('x === y', false, null, {'x': x, 'y': y}); |
| 100 expectEval('x !== y', true, null, {'x': x, 'y': y}); |
| 101 |
| 95 expectEval('1 > 1', false); | 102 expectEval('1 > 1', false); |
| 96 expectEval('1 > 2', false); | 103 expectEval('1 > 2', false); |
| 97 expectEval('2 > 1', true); | 104 expectEval('2 > 1', true); |
| 98 expectEval('1 >= 1', true); | 105 expectEval('1 >= 1', true); |
| 99 expectEval('1 >= 2', false); | 106 expectEval('1 >= 2', false); |
| 100 expectEval('2 >= 1', true); | 107 expectEval('2 >= 1', true); |
| 101 expectEval('1 < 1', false); | 108 expectEval('1 < 1', false); |
| 102 expectEval('1 < 2', true); | 109 expectEval('1 < 2', true); |
| 103 expectEval('2 < 1', false); | 110 expectEval('2 < 1', false); |
| 104 expectEval('1 <= 1', true); | 111 expectEval('1 <= 1', true); |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 class Add extends Transformer<int, int> { | 418 class Add extends Transformer<int, int> { |
| 412 final int i; | 419 final int i; |
| 413 Add(this.i); | 420 Add(this.i); |
| 414 int forward(int x) => x + i; | 421 int forward(int x) => x + i; |
| 415 int reverse(int x) => x - i; | 422 int reverse(int x) => x - i; |
| 416 } | 423 } |
| 417 | 424 |
| 418 Object evalString(String s, [Object model, Map vars]) => | 425 Object evalString(String s, [Object model, Map vars]) => |
| 419 eval(new Parser(s).parse(), new Scope(model: model, variables: vars)); | 426 eval(new Parser(s).parse(), new Scope(model: model, variables: vars)); |
| 420 | 427 |
| 421 expectEval(String s, dynamic matcher, [Object model, Map vars = const {}]) => | 428 expectEval(String s, dynamic matcher, [Object model, Map vars = const {}]) { |
| 422 expect( | 429 var expr = new Parser(s).parse(); |
| 423 eval(new Parser(s).parse(), new Scope(model: model, variables: vars)), | 430 var scope = new Scope(model: model, variables: vars); |
| 424 matcher, | 431 expect(eval(expr, scope), matcher, reason: s); |
| 425 reason: s); | 432 |
| 433 var observer = observe(expr, scope); |
| 434 new Updater(scope).visit(observer); |
| 435 expect(observer.currentValue, matcher, reason: s); |
| 436 } |
| 426 | 437 |
| 427 expectObserve(String s, { | 438 expectObserve(String s, { |
| 428 Object model, | 439 Object model, |
| 429 Map variables: const {}, | 440 Map variables: const {}, |
| 430 dynamic beforeMatcher, | 441 dynamic beforeMatcher, |
| 431 mutate(), | 442 mutate(), |
| 432 dynamic afterMatcher}) { | 443 dynamic afterMatcher}) { |
| 433 | 444 |
| 434 var scope = new Scope(model: model, variables: variables); | 445 var scope = new Scope(model: model, variables: variables); |
| 435 var observer = observe(new Parser(s).parse(), scope); | 446 var observer = observe(new Parser(s).parse(), scope); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 446 return Future.wait([future, new Future(() { | 457 return Future.wait([future, new Future(() { |
| 447 expect(passed, true, reason: "Didn't receive a change notification on $s"); | 458 expect(passed, true, reason: "Didn't receive a change notification on $s"); |
| 448 })]); | 459 })]); |
| 449 } | 460 } |
| 450 | 461 |
| 451 // Regression test from https://code.google.com/p/dart/issues/detail?id=13459 | 462 // Regression test from https://code.google.com/p/dart/issues/detail?id=13459 |
| 452 class WordElement extends Observable { | 463 class WordElement extends Observable { |
| 453 @observable List chars1 = 'abcdefg'.split(''); | 464 @observable List chars1 = 'abcdefg'.split(''); |
| 454 @reflectable List filteredList(List original) => [original[0], original[1]]; | 465 @reflectable List filteredList(List original) => [original[0], original[1]]; |
| 455 } | 466 } |
| OLD | NEW |