OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of html; | 5 part of html; |
6 | 6 |
7 class _ConsoleVariables { | 7 class _ConsoleVariables { |
8 Map<String, Object> _data = new Map<String, Object>(); | 8 Map<String, Object> _data = new Map<String, Object>(); |
9 | 9 |
10 /** | 10 /** |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 } | 405 } |
406 | 406 |
407 static void register(Document document, String tag, Type type, | 407 static void register(Document document, String tag, Type type, |
408 String extendsTagName) { | 408 String extendsTagName) { |
409 // TODO(vsm): Move these checks into native code. | 409 // TODO(vsm): Move these checks into native code. |
410 ClassMirror cls = reflectClass(type); | 410 ClassMirror cls = reflectClass(type); |
411 if (_isBuiltinType(cls)) { | 411 if (_isBuiltinType(cls)) { |
412 throw new UnsupportedError("Invalid custom element from $libName."); | 412 throw new UnsupportedError("Invalid custom element from $libName."); |
413 } | 413 } |
414 var className = MirrorSystem.getName(cls.simpleName); | 414 var className = MirrorSystem.getName(cls.simpleName); |
415 if (!cls.constructors.containsKey(new Symbol('$className.created'))) { | 415 var createdConstructor = cls.constructors[new Symbol('$className.created')]; |
416 throw new UnsupportedError('Class is missing constructor $className.create
d'); | 416 if (createdConstructor == null) { |
| 417 throw new UnsupportedError( |
| 418 'Class is missing constructor $className.created'); |
| 419 } |
| 420 if (createdConstructor.parameters.length > 0) { |
| 421 throw new UnsupportedError( |
| 422 'Constructor $className.created must take zero arguments'); |
417 } | 423 } |
418 _register(document, tag, type, extendsTagName); | 424 _register(document, tag, type, extendsTagName); |
419 } | 425 } |
420 | 426 |
421 static void _register(Document document, String tag, Type customType, | 427 static void _register(Document document, String tag, Type customType, |
422 String extendsTagName) native "Utils_register"; | 428 String extendsTagName) native "Utils_register"; |
423 | 429 |
424 static Element createElement(Document document, String tagName) native "Utils_
createElement"; | 430 static Element createElement(Document document, String tagName) native "Utils_
createElement"; |
425 | 431 |
426 static void initializeCustomElement(HtmlElement element) native "Utils_initial
izeCustomElement"; | 432 static void initializeCustomElement(HtmlElement element) native "Utils_initial
izeCustomElement"; |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 _scheduleImmediateHelper._schedule(callback); | 580 _scheduleImmediateHelper._schedule(callback); |
575 }; | 581 }; |
576 | 582 |
577 get _pureIsolateScheduleImmediateClosure => ((void callback()) => | 583 get _pureIsolateScheduleImmediateClosure => ((void callback()) => |
578 throw new UnimplementedError("scheduleMicrotask in background isolates " | 584 throw new UnimplementedError("scheduleMicrotask in background isolates " |
579 "are not supported in the browser")); | 585 "are not supported in the browser")); |
580 | 586 |
581 void _initializeCustomElement(Element e) { | 587 void _initializeCustomElement(Element e) { |
582 _Utils.initializeCustomElement(e); | 588 _Utils.initializeCustomElement(e); |
583 } | 589 } |
OLD | NEW |