| OLD | NEW |
| (Empty) | |
| 1 var opassign; |
| 2 (function(exports) { |
| 3 'use strict'; |
| 4 dart.copyProperties(exports, { |
| 5 get index() { |
| 6 core.print('called "index" getter'); |
| 7 return 0; |
| 8 } |
| 9 }); |
| 10 dart.defineLazyProperties(exports, { |
| 11 get _foo() { |
| 12 return new Foo(); |
| 13 } |
| 14 }); |
| 15 dart.copyProperties(exports, { |
| 16 get foo() { |
| 17 core.print('called "foo" getter'); |
| 18 return exports._foo; |
| 19 } |
| 20 }); |
| 21 class Foo extends core.Object { |
| 22 Foo() { |
| 23 this.x = 100; |
| 24 } |
| 25 } |
| 26 // Function main: () → dynamic |
| 27 function main() { |
| 28 let f = dart.map([0, 40]); |
| 29 core.print('should only call "index" 2 times:'); |
| 30 let i = exports.index; |
| 31 f.set(i, dart.dbinary(f.get(i), '+', 1)); |
| 32 forcePostfix((() => { |
| 33 let i = exports.index, x$ = f.get(i); |
| 34 f.set(i, dart.dbinary(x$, '+', 1)); |
| 35 return x$; |
| 36 })()); |
| 37 core.print('should only call "foo" 2 times:'); |
| 38 let o = exports.foo; |
| 39 dart.dput(o, 'x', dart.dbinary(dart.dload(o, 'x'), '+', 1)); |
| 40 forcePostfix((() => { |
| 41 let o = exports.foo, x$ = dart.dload(o, 'x'); |
| 42 dart.dput(o, 'x', dart.dbinary(x$, '+', 1)); |
| 43 return x$; |
| 44 })()); |
| 45 core.print('op assign test, should only call "index" twice:'); |
| 46 let i = exports.index; |
| 47 f.set(i, dart.dbinary(f.get(i), '+', f.get(exports.index))); |
| 48 } |
| 49 // Function forcePostfix: (dynamic) → dynamic |
| 50 function forcePostfix(x) { |
| 51 } |
| 52 // Exports: |
| 53 exports.Foo = Foo; |
| 54 exports.main = main; |
| 55 exports.forcePostfix = forcePostfix; |
| 56 })(opassign || (opassign = {})); |
| OLD | NEW |