fix(Dart): make some playground samples run with Dart Dev Compiler

Resolve all invalid field override errors, workaround current
reflection limitations in Dart Dev Compiler. todo, hello_world and
key_events samples now work with Dart Dev Compiler.

BREAKING CHANGE: remove TemplateRef.elementRef setter

Closes #6441
This commit is contained in:
Jacob Richman 2016-01-12 16:38:36 -08:00
parent a4b5cb8376
commit 3e65d1458e
6 changed files with 18 additions and 12 deletions

View File

@ -25,7 +25,7 @@ export abstract class TemplateRef {
*
*/
// TODO(i): rename to anchor or location
elementRef: ElementRef;
get elementRef(): ElementRef { return null; }
}
export class TemplateRef_ extends TemplateRef {

View File

@ -4,9 +4,11 @@ import 'exception_handler.dart';
export 'exception_handler.dart';
class BaseException extends Error {
final String message;
final String _message;
BaseException([this.message]);
BaseException([this._message]);
String get message => _message;
String toString() {
return this.message;
@ -14,16 +16,16 @@ class BaseException extends Error {
}
class WrappedException extends Error {
final dynamic context;
final String wrapperMessage;
final dynamic _context;
final String _wrapperMessage;
final originalException;
final originalStack;
WrappedException(
[this.wrapperMessage,
[this._wrapperMessage,
this.originalException,
this.originalStack,
this.context]);
this._context]);
get message {
return ExceptionHandler.exceptionToString(this);
@ -32,6 +34,10 @@ class WrappedException extends Error {
String toString() {
return this.message;
}
dynamic get context => _context;
String get wrapperMessage => _wrapperMessage;
}
Error makeTypeError([String message = ""]) {

View File

@ -30,7 +30,10 @@ export abstract class DomAdapter {
* Maps attribute names to their corresponding property names for cases
* where attribute name doesn't match property name.
*/
attrToPropMap: {[key: string]: string};
get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; };
set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; };
/** @internal */
_attrToPropMap: {[key: string]: string};
abstract parse(templateHtml: string);
abstract query(selector: string): any;

View File

@ -4,8 +4,6 @@ import {EventManagerPlugin, EventManager} from './event_manager';
@Injectable()
export class DomEventsPlugin extends EventManagerPlugin {
manager: EventManager;
// This plugin should come last in the list of plugins, because it accepts all
// events.
supports(eventName: string): boolean { return true; }

View File

@ -1224,7 +1224,6 @@ var NG_CORE = [
'SimpleChange.isFirstChange()',
'TemplateRef',
'TemplateRef.elementRef',
'TemplateRef.elementRef=',
/*
Abstract method
'TemplateRef.hasLocal()',

View File

@ -225,7 +225,7 @@ class _CodegenState {
List<String> codes = [];
_endOfBlockIdxs.clear();
ListWrapper.forEachWithIndex(eb.records, (r, i) {
ListWrapper.forEachWithIndex(eb.records, (_, i) {
var code;
var r = eb.records[i];