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

Side by Side Diff: test/codegen/sunflower/dom.dart

Issue 1200233004: fixes #168, dart:js implementation with a test (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix error (window not defined) Created 5 years, 5 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 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 @JsName(name: 'window') 5 @JsName(name: 'window')
6 library dom; 6 library dom;
7 7
8 @JsName()
9 class Window {}
8 10
9 class JsName { 11 class JsName {
10 /// The JavaScript name. 12 /// The JavaScript name.
11 /// Used for classes and libraries. 13 /// Used for classes and libraries.
12 /// Note that this could be an expression, e.g. `lib.TypeName` in JS, but it 14 /// Note that this could be an expression, e.g. `lib.TypeName` in JS, but it
13 /// should be kept simple, as it will be generated directly into the code. 15 /// should be kept simple, as it will be generated directly into the code.
14 final String name; 16 final String name;
15 const JsName({this.name}); 17 const JsName({this.name});
16 } 18 }
17 class Overload { 19 class Overload {
18 const Overload(); 20 const Overload();
19 } 21 }
20 const overload = const Overload(); 22 const overload = const Overload();
21 23
22 external Document get document; 24 external Document get document;
25 external Window get window;
23 26
24 @JsName(name: 'Document') 27 @JsName()
25 abstract class Document { 28 abstract class Document extends Node {
26 Element createElement(String name); 29 Element createElement(String name);
27 Element querySelector(String selector); 30 Element querySelector(String selector);
28 }
29 31
30 @JsName(name: 'Element') 32 HTMLElement head;
31 abstract class Element { 33 HTMLElement body;
32 void addEventListener(String type, EventListener callback, [bool capture]);
33 String textContent;
34 NodeList get childNodes;
35 } 34 }
36 35
37 @JsName() 36 @JsName()
38 class Node {} 37 class Blob {
38 external Blob(blobParts, {String type});
39 }
40
41 class CustomEvent {
42 external CustomEvent(String type, {detail, bubbles, cancelable});
43 }
44
45 @JsName()
46 abstract class Element extends Node {
47 void addEventListener(String type, EventListener callback, [bool capture]);
48 String textContent;
49 }
50
51 @JsName()
52 abstract class HTMLElement extends Element {
53 String innerHTML;
54 HTMLCollection get children;
55 }
56
57 @JsName()
58 abstract class Node {
59 bool hasChildNodes();
60 NodeList get childNodes;
61
62 Node insertBefore(Node node, [Node child]);
63 Node appendChild(Node node);
64 Node replaceChild(Node node, Node child);
65 Node removeChild(Node child);
66 }
67
68 abstract class HTMLCollection {
69 int get length;
70 external Element operator [](num index);
71 }
39 72
40 @JsName() 73 @JsName()
41 class NodeList { 74 class NodeList {
42 external NodeList(); 75 external NodeList();
43 external num get length; 76 external num get length;
44 external set length(num _); 77 external set length(num _);
45 external Node item(num index); 78 external Node item(num index);
46 79
47 external Node operator [](num index); 80 external Node operator [](num index);
48 external void operator []=(num index, Node); 81 external void operator []=(num index, Node);
49 } 82 }
50 83
51 typedef void EventListener(Event e); 84 typedef void EventListener(Event e);
52 85
53 @JsName() 86 @JsName()
54 abstract class Event {} 87 abstract class Event {}
55 88
89 // TODO(jmesserly): rename these
56 @JsName(name: 'HTMLInputElement') 90 @JsName(name: 'HTMLInputElement')
57 abstract class InputElement extends Element { 91 abstract class InputElement extends HTMLElement {
58 String value; 92 String value;
59 } 93 }
60 94
61 @JsName(name: 'HTMLCanvasElement') 95 @JsName(name: 'HTMLCanvasElement')
62 abstract class CanvasElement extends Element { 96 abstract class CanvasElement extends HTMLElement {
63 RenderingContext getContext(String contextId); 97 RenderingContext getContext(String contextId);
64 } 98 }
65 99
100 @JsName(name: 'HTMLDivElement')
101 abstract class DivElement extends HTMLElement {
102 RenderingContext getContext(String contextId);
103 }
104
105 @JsName(name: 'HTMLScriptElement')
106 abstract class ScriptElement extends HTMLElement {
107 String type;
108 }
109
110
66 // TODO(jmesserly): union type of CanvasRenderingContext2D and 111 // TODO(jmesserly): union type of CanvasRenderingContext2D and
67 // WebGLRenderingContext 112 // WebGLRenderingContext
68 abstract class RenderingContext {} 113 abstract class RenderingContext {}
69 114
70 // http://www.w3.org/html/wg/drafts/2dcontext/html5_canvas_CR/ 115 // http://www.w3.org/html/wg/drafts/2dcontext/html5_canvas_CR/
71 @JsName() 116 @JsName()
72 abstract class CanvasRenderingContext2D 117 abstract class CanvasRenderingContext2D
73 implements CanvasDrawingStyles, CanvasPathMethods, RenderingContext { 118 implements CanvasDrawingStyles, CanvasPathMethods, RenderingContext {
74 119
75 // back-reference to the canvas 120 // back-reference to the canvas
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 abstract class TextMetrics { 244 abstract class TextMetrics {
200 num get width; 245 num get width;
201 } 246 }
202 247
203 @JsName() 248 @JsName()
204 abstract class ImageData { 249 abstract class ImageData {
205 int get width; 250 int get width;
206 int get height; 251 int get height;
207 // TODO: readonly Uint8ClampedArray data; 252 // TODO: readonly Uint8ClampedArray data;
208 } 253 }
OLDNEW
« no previous file with comments | « test/codegen/expect/sunflower/sunflower.html ('k') | tool/input_sdk/lib/js/dart2js/js_dart2js.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698