chore: kill ListWrapper.create() and .push().
These wrappers are not natively understood by ts2dart. Removing them will improve Dart2JS compilation due to fewer megamorphic calls to List functions. It also makes Angular code more succinct and improves type safety in Angular due to better type inference of the Array component type. This change exposed several bugs in Angular.
This commit is contained in:
@ -41,7 +41,8 @@ import {RenderCompiler} from 'angular2/src/render/api';
|
||||
export function main() {
|
||||
describe('compiler', function() {
|
||||
var directiveResolver, tplResolver, renderCompiler, protoViewFactory, cmpUrlMapper,
|
||||
renderCompileRequests, rootProtoView;
|
||||
rootProtoView;
|
||||
var renderCompileRequests: any[];
|
||||
|
||||
beforeEach(() => {
|
||||
directiveResolver = new DirectiveResolver();
|
||||
@ -61,7 +62,7 @@ export function main() {
|
||||
var urlResolver = new FakeUrlResolver();
|
||||
renderCompileRequests = [];
|
||||
renderCompiler.spy('compile').andCallFake((template) => {
|
||||
ListWrapper.push(renderCompileRequests, template);
|
||||
renderCompileRequests.push(template);
|
||||
return PromiseWrapper.resolve(ListWrapper.removeAt(renderCompileResults, 0));
|
||||
});
|
||||
|
||||
@ -607,7 +608,7 @@ class FakeProtoViewFactory extends ProtoViewFactory {
|
||||
|
||||
createAppProtoViews(componentBinding: DirectiveBinding, renderProtoView: renderApi.ProtoViewDto,
|
||||
directives: List<DirectiveBinding>): List<AppProtoView> {
|
||||
ListWrapper.push(this.requests, [componentBinding, renderProtoView, directives]);
|
||||
this.requests.push([componentBinding, renderProtoView, directives]);
|
||||
return ListWrapper.removeAt(this.results, 0);
|
||||
}
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ export function main() {
|
||||
var dynamicBindings = [];
|
||||
|
||||
for (var i = 0; i < 20; i++) {
|
||||
ListWrapper.push(dynamicBindings, bind(i).toValue(i));
|
||||
dynamicBindings.push(bind(i).toValue(i));
|
||||
}
|
||||
|
||||
function createPei(parent, index, bindings, distance = 1, hasShadowRoot = false) {
|
||||
@ -1090,6 +1090,6 @@ class FakeRenderer extends Renderer {
|
||||
this.log = [];
|
||||
}
|
||||
setElementProperty(viewRef, elementIndex, propertyName, value) {
|
||||
ListWrapper.push(this.log, [viewRef, elementIndex, propertyName, value]);
|
||||
this.log.push([viewRef, elementIndex, propertyName, value]);
|
||||
}
|
||||
}
|
||||
|
@ -42,8 +42,8 @@ export function main() {
|
||||
var viewPool;
|
||||
var manager;
|
||||
var directiveResolver;
|
||||
var createdViews;
|
||||
var createdRenderViews;
|
||||
var createdViews: any[];
|
||||
var createdRenderViews: any[];
|
||||
|
||||
function wrapPv(protoView: AppProtoView): ProtoViewRef { return new ProtoViewRef(protoView); }
|
||||
|
||||
@ -124,7 +124,7 @@ export function main() {
|
||||
utils.spy('createView')
|
||||
.andCallFake((proto, renderViewRef, _a, _b) => {
|
||||
var view = createView(proto, renderViewRef);
|
||||
ListWrapper.push(createdViews, view);
|
||||
createdViews.push(view);
|
||||
return view;
|
||||
});
|
||||
utils.spy('attachComponentView')
|
||||
@ -143,13 +143,13 @@ export function main() {
|
||||
renderer.spy('createRootHostView')
|
||||
.andCallFake((_b, _c) => {
|
||||
var rv = new RenderViewRef();
|
||||
ListWrapper.push(createdRenderViews, rv);
|
||||
createdRenderViews.push(rv);
|
||||
return rv;
|
||||
});
|
||||
renderer.spy('createView')
|
||||
.andCallFake((_a) => {
|
||||
var rv = new RenderViewRef();
|
||||
ListWrapper.push(createdRenderViews, rv);
|
||||
createdRenderViews.push(rv);
|
||||
return rv;
|
||||
});
|
||||
viewPool.spy('returnView').andReturn(true);
|
||||
|
Reference in New Issue
Block a user