refactor(dart/transform): Remove unnecessary getter/setter codegen
Currently the transformer generates all getters and setters even when creating pre-generated change detectors, which remove the need for them. Generate getters and setters via the model provided by `ProtoViewDto`, which contains enough information to allow omitting unnecessary getters and setters from code output. Allow generating getters, setters, and method names which are Dart pseudo keywords. Closes #3489
This commit is contained in:
@ -44,6 +44,7 @@ import {ChangeDetector, ChangeDetectorRef} from 'angular2/src/change_detection/c
|
||||
import {QueryList} from './query_list';
|
||||
import {reflector} from 'angular2/src/reflection/reflection';
|
||||
import {RenderDirectiveMetadata} from 'angular2/src/render/api';
|
||||
import {EventConfig} from 'angular2/src/render/dom/util';
|
||||
import {PipeBinding} from '../pipes/pipe_binding';
|
||||
|
||||
var _staticKeys;
|
||||
@ -303,18 +304,8 @@ function _createEventEmitterAccessors(bwv: BindingWithVisibility): EventEmitterA
|
||||
if (!(binding instanceof DirectiveBinding)) return [];
|
||||
var db = <DirectiveBinding>binding;
|
||||
return ListWrapper.map(db.eventEmitters, eventConfig => {
|
||||
let fieldName;
|
||||
let eventName;
|
||||
var colonIdx = eventConfig.indexOf(':');
|
||||
if (colonIdx > -1) {
|
||||
// long format: 'fieldName: eventName'
|
||||
fieldName = StringWrapper.substring(eventConfig, 0, colonIdx).trim();
|
||||
eventName = StringWrapper.substring(eventConfig, colonIdx + 1).trim();
|
||||
} else {
|
||||
// short format: 'name' when fieldName and eventName are the same
|
||||
fieldName = eventName = eventConfig;
|
||||
}
|
||||
return new EventEmitterAccessor(eventName, reflector.getter(fieldName));
|
||||
var parsedEvent = EventConfig.parse(eventConfig);
|
||||
return new EventEmitterAccessor(parsedEvent.eventName, reflector.getter(parsedEvent.fieldName));
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user