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

Side by Side Diff: test/codegen/expect/opassign.js

Issue 1069493002: implement opassign, fix bugs in pre/postfix, introduce a let* helper (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « test/codegen/expect/map_keys.js.map ('k') | test/codegen/expect/opassign.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 = {}));
OLDNEW
« no previous file with comments | « test/codegen/expect/map_keys.js.map ('k') | test/codegen/expect/opassign.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698