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

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

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

Powered by Google App Engine
This is Rietveld 408576698