Index: test/codegen/expect/sunflower/sunflower.js |
diff --git a/test/codegen/expect/sunflower/sunflower.js b/test/codegen/expect/sunflower/sunflower.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c447b631a4a1e78fba241e251a4eb12a4fbee9fc |
--- /dev/null |
+++ b/test/codegen/expect/sunflower/sunflower.js |
@@ -0,0 +1,132 @@ |
+dart_library.library('sunflower', null, /* Imports */[ |
+ 'dart_sdk' |
+], function load__sunflower(exports, dart_sdk) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const html = dart_sdk.html; |
+ const math = dart_sdk.math; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const sunflower = Object.create(null); |
+ const circle = Object.create(null); |
+ const painter = Object.create(null); |
+ let StringToElement = () => (StringToElement = dart.constFn(dart.definiteFunctionType(html.Element, [core.String])))(); |
+ let EventTovoid = () => (EventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Event])))(); |
+ let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))(); |
+ sunflower.SEED_RADIUS = 2; |
+ sunflower.SCALE_FACTOR = 4; |
+ sunflower.MAX_D = 300; |
+ sunflower.centerX = sunflower.MAX_D / 2; |
+ sunflower.centerY = sunflower.centerX; |
+ sunflower.querySelector = function(selector) { |
+ return html.document[dartx.querySelector](selector); |
+ }; |
+ dart.fn(sunflower.querySelector, StringToElement()); |
+ dart.defineLazy(sunflower, { |
+ get canvas() { |
+ return html.CanvasElement.as(sunflower.querySelector("#canvas")); |
+ } |
+ }); |
+ dart.defineLazy(sunflower, { |
+ get context() { |
+ return html.CanvasRenderingContext2D.as(sunflower.canvas[dartx.getContext]('2d')); |
+ } |
+ }); |
+ dart.defineLazy(sunflower, { |
+ get slider() { |
+ return html.InputElement.as(sunflower.querySelector("#slider")); |
+ } |
+ }); |
+ dart.defineLazy(sunflower, { |
+ get notes() { |
+ return sunflower.querySelector("#notes"); |
+ } |
+ }); |
+ dart.defineLazy(sunflower, { |
+ get PHI() { |
+ return (dart.notNull(math.sqrt(5)) + 1) / 2; |
+ } |
+ }); |
+ sunflower.seeds = 0; |
+ sunflower.main = function() { |
+ sunflower.slider[dartx.addEventListener]('change', dart.fn(e => sunflower.draw(), EventTovoid())); |
+ sunflower.draw(); |
+ }; |
+ dart.fn(sunflower.main, VoidTovoid()); |
+ sunflower.draw = function() { |
+ sunflower.seeds = core.int.parse(sunflower.slider[dartx.value]); |
+ sunflower.context[dartx.clearRect](0, 0, sunflower.MAX_D, sunflower.MAX_D); |
+ for (let i = 0; i < dart.notNull(sunflower.seeds); i++) { |
+ let theta = i * painter.TAU / dart.notNull(sunflower.PHI); |
+ let r = dart.notNull(math.sqrt(i)) * sunflower.SCALE_FACTOR; |
+ let x = sunflower.centerX + r * dart.notNull(math.cos(theta)); |
+ let y = sunflower.centerY - r * dart.notNull(math.sin(theta)); |
+ new sunflower.SunflowerSeed(x, y, sunflower.SEED_RADIUS).draw(sunflower.context); |
+ } |
+ sunflower.notes[dartx.text] = dart.str`${sunflower.seeds} seeds`; |
+ }; |
+ dart.fn(sunflower.draw, VoidTovoid()); |
+ circle.Circle = class Circle extends core.Object { |
+ new(x, y, radius) { |
+ this.x = x; |
+ this.y = y; |
+ this.radius = radius; |
+ } |
+ }; |
+ dart.setSignature(circle.Circle, { |
+ constructors: () => ({new: dart.definiteFunctionType(circle.Circle, [core.num, core.num, core.num])}) |
+ }); |
+ painter.CirclePainter = class CirclePainter extends core.Object { |
+ new() { |
+ this.color = painter.ORANGE; |
+ } |
+ draw(context) { |
+ context[dartx.beginPath](); |
+ context[dartx.lineWidth] = 2; |
+ context[dartx.fillStyle] = this.color; |
+ context[dartx.strokeStyle] = this.color; |
+ context[dartx.arc](this.x, this.y, this.radius, 0, painter.TAU, false); |
+ context[dartx.fill](); |
+ context[dartx.closePath](); |
+ context[dartx.stroke](); |
+ } |
+ }; |
+ painter.CirclePainter[dart.implements] = () => [circle.Circle]; |
+ dart.setSignature(painter.CirclePainter, { |
+ methods: () => ({draw: dart.definiteFunctionType(dart.void, [html.CanvasRenderingContext2D])}) |
+ }); |
+ sunflower.SunflowerSeed = class SunflowerSeed extends dart.mixin(circle.Circle, painter.CirclePainter) { |
+ new(x, y, radius, color) { |
+ if (color === void 0) color = null; |
+ super.new(x, y, radius); |
+ if (color != null) this.color = color; |
+ } |
+ }; |
+ dart.setSignature(sunflower.SunflowerSeed, { |
+ constructors: () => ({new: dart.definiteFunctionType(sunflower.SunflowerSeed, [core.num, core.num, core.num], [core.String])}) |
+ }); |
+ painter.ORANGE = "orange"; |
+ painter.RED = "red"; |
+ painter.BLUE = "blue"; |
+ painter.TAU = math.PI * 2; |
+ painter.querySelector = function(selector) { |
+ return html.document[dartx.querySelector](selector); |
+ }; |
+ dart.fn(painter.querySelector, StringToElement()); |
+ dart.defineLazy(painter, { |
+ get canvas() { |
+ return html.CanvasElement.as(painter.querySelector("#canvas")); |
+ } |
+ }); |
+ dart.defineLazy(painter, { |
+ get context() { |
+ return html.CanvasRenderingContext2D.as(painter.canvas[dartx.getContext]('2d')); |
+ } |
+ }); |
+ // Exports: |
+ exports.sunflower = sunflower; |
+ exports.circle = circle; |
+ exports.painter = painter; |
+}); |
+ |
+//# sourceMappingURL=sunflower.js.map |