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

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

Issue 1138793002: Tag closures with their types (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: More comment fixes Created 5 years, 7 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/sunflower/dom.js ('k') | test/codegen/expect/temps.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var sunflower = dart.defineLibrary(sunflower, {}); 1 var sunflower = dart.defineLibrary(sunflower, {});
2 var math = dart.import(math); 2 var math = dart.import(math);
3 var dom = dart.import(dom); 3 var dom = dart.import(dom);
4 var core = dart.import(core); 4 var core = dart.import(core);
5 (function(exports, math, dom, core) { 5 (function(exports, math, dom, core) {
6 'use strict'; 6 'use strict';
7 let ORANGE = "orange"; 7 let ORANGE = "orange";
8 let SEED_RADIUS = 2; 8 let SEED_RADIUS = 2;
9 let SCALE_FACTOR = 4; 9 let SCALE_FACTOR = 4;
10 let TAU = dart.notNull(math.PI) * 2; 10 let TAU = dart.notNull(math.PI) * 2;
11 let MAX_D = 300; 11 let MAX_D = 300;
12 let centerX = dart.notNull(MAX_D) / 2; 12 let centerX = dart.notNull(MAX_D) / 2;
13 let centerY = centerX; 13 let centerY = centerX;
14 // Function querySelector: (String) → Element
15 function querySelector(selector) { 14 function querySelector(selector) {
16 return dom.document.querySelector(selector); 15 return dom.document.querySelector(selector);
17 } 16 }
17 dart.fn(querySelector, dom.Element, [core.String]);
18 exports.seeds = 0; 18 exports.seeds = 0;
19 dart.defineLazyProperties(exports, { 19 dart.defineLazyProperties(exports, {
20 get slider() { 20 get slider() {
21 return dart.as(querySelector("#slider"), dom.InputElement); 21 return dart.as(querySelector("#slider"), dom.InputElement);
22 }, 22 },
23 get notes() { 23 get notes() {
24 return querySelector("#notes"); 24 return querySelector("#notes");
25 }, 25 },
26 get PHI() { 26 get PHI() {
27 return (dart.notNull(math.sqrt(5)) + 1) / 2; 27 return (dart.notNull(math.sqrt(5)) + 1) / 2;
28 }, 28 },
29 get context() { 29 get context() {
30 return dart.as(dart.as(querySelector("#canvas"), dom.CanvasElement).getCon text('2d'), dom.CanvasRenderingContext2D); 30 return dart.as(dart.as(querySelector("#canvas"), dom.CanvasElement).getCon text('2d'), dom.CanvasRenderingContext2D);
31 } 31 }
32 }); 32 });
33 // Function main: () → void
34 function main() { 33 function main() {
35 exports.slider.addEventListener('change', e => draw()); 34 exports.slider.addEventListener('change', dart.fn(e => draw(), dart.void, [d art.dynamic]));
36 draw(); 35 draw();
37 } 36 }
38 // Function draw: () → void 37 dart.fn(main, dart.void, []);
39 function draw() { 38 function draw() {
40 exports.seeds = core.int.parse(exports.slider.value); 39 exports.seeds = core.int.parse(exports.slider.value);
41 exports.context.clearRect(0, 0, MAX_D, MAX_D); 40 exports.context.clearRect(0, 0, MAX_D, MAX_D);
42 for (let i = 0; dart.notNull(i) < dart.notNull(exports.seeds); i = dart.notN ull(i) + 1) { 41 for (let i = 0; dart.notNull(i) < dart.notNull(exports.seeds); i = dart.notN ull(i) + 1) {
43 let theta = dart.notNull(i) * dart.notNull(TAU) / dart.notNull(exports.PHI ); 42 let theta = dart.notNull(i) * dart.notNull(TAU) / dart.notNull(exports.PHI );
44 let r = dart.notNull(math.sqrt(i)) * dart.notNull(SCALE_FACTOR); 43 let r = dart.notNull(math.sqrt(i)) * dart.notNull(SCALE_FACTOR);
45 let x = dart.notNull(centerX) + dart.notNull(r) * dart.notNull(math.cos(th eta)); 44 let x = dart.notNull(centerX) + dart.notNull(r) * dart.notNull(math.cos(th eta));
46 let y = dart.notNull(centerY) - dart.notNull(r) * dart.notNull(math.sin(th eta)); 45 let y = dart.notNull(centerY) - dart.notNull(r) * dart.notNull(math.sin(th eta));
47 new SunflowerSeed(x, y, SEED_RADIUS).draw(); 46 new SunflowerSeed(x, y, SEED_RADIUS).draw();
48 } 47 }
49 exports.notes.textContent = `${exports.seeds} seeds`; 48 exports.notes.textContent = `${exports.seeds} seeds`;
50 } 49 }
50 dart.fn(draw, dart.void, []);
51 class Circle extends core.Object { 51 class Circle extends core.Object {
52 Circle(x, y, radius) { 52 Circle(x, y, radius) {
53 this.x = x; 53 this.x = x;
54 this.y = y; 54 this.y = y;
55 this.radius = radius; 55 this.radius = radius;
56 } 56 }
57 } 57 }
58 dart.setSignature(Circle, {});
58 class CirclePainter extends core.Object { 59 class CirclePainter extends core.Object {
59 CirclePainter() { 60 CirclePainter() {
60 this.color = ORANGE; 61 this.color = ORANGE;
61 } 62 }
62 draw() { 63 draw() {
63 exports.context.beginPath(); 64 exports.context.beginPath();
64 exports.context.lineWidth = 2; 65 exports.context.lineWidth = 2;
65 exports.context.fillStyle = this.color; 66 exports.context.fillStyle = this.color;
66 exports.context.strokeStyle = this.color; 67 exports.context.strokeStyle = this.color;
67 exports.context.arc(this.x, this.y, this.radius, 0, TAU, false); 68 exports.context.arc(this.x, this.y, this.radius, 0, TAU, false);
68 exports.context.fill(); 69 exports.context.fill();
69 exports.context.closePath(); 70 exports.context.closePath();
70 exports.context.stroke(); 71 exports.context.stroke();
71 } 72 }
72 } 73 }
73 CirclePainter[dart.implements] = () => [Circle]; 74 CirclePainter[dart.implements] = () => [Circle];
75 dart.setSignature(CirclePainter, {
76 methods: () => ({draw: dart.functionType(dart.void, [])})
77 });
74 class SunflowerSeed extends dart.mixin(Circle, CirclePainter) { 78 class SunflowerSeed extends dart.mixin(Circle, CirclePainter) {
75 SunflowerSeed(x, y, radius, color) { 79 SunflowerSeed(x, y, radius, color) {
76 if (color === void 0) 80 if (color === void 0)
77 color = null; 81 color = null;
78 super.Circle(x, y, radius); 82 super.Circle(x, y, radius);
79 if (color != null) 83 if (color != null)
80 this.color = color; 84 this.color = color;
81 } 85 }
82 } 86 }
87 dart.setSignature(SunflowerSeed, {});
83 // Exports: 88 // Exports:
84 exports.ORANGE = ORANGE; 89 exports.ORANGE = ORANGE;
85 exports.SEED_RADIUS = SEED_RADIUS; 90 exports.SEED_RADIUS = SEED_RADIUS;
86 exports.SCALE_FACTOR = SCALE_FACTOR; 91 exports.SCALE_FACTOR = SCALE_FACTOR;
87 exports.TAU = TAU; 92 exports.TAU = TAU;
88 exports.MAX_D = MAX_D; 93 exports.MAX_D = MAX_D;
89 exports.centerX = centerX; 94 exports.centerX = centerX;
90 exports.centerY = centerY; 95 exports.centerY = centerY;
91 exports.querySelector = querySelector; 96 exports.querySelector = querySelector;
92 exports.main = main; 97 exports.main = main;
93 exports.draw = draw; 98 exports.draw = draw;
94 exports.Circle = Circle; 99 exports.Circle = Circle;
95 exports.CirclePainter = CirclePainter; 100 exports.CirclePainter = CirclePainter;
96 exports.SunflowerSeed = SunflowerSeed; 101 exports.SunflowerSeed = SunflowerSeed;
97 })(sunflower, math, dom, core); 102 })(sunflower, math, dom, core);
OLDNEW
« no previous file with comments | « test/codegen/expect/sunflower/dom.js ('k') | test/codegen/expect/temps.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698