diff --git a/modules/angular2/src/compiler/view_compiler/event_binder.ts b/modules/angular2/src/compiler/view_compiler/event_binder.ts index 20ed07379e..8d6e4f9371 100644 --- a/modules/angular2/src/compiler/view_compiler/event_binder.ts +++ b/modules/angular2/src/compiler/view_compiler/event_binder.ts @@ -83,14 +83,9 @@ export class CompileEventListener { listenToRenderer() { var listenExpr; - var eventListener = o.THIS_EXPR.callMethod('eventHandler', [ - o.fn([this._eventParam], - [ - new o.ReturnStatement( - o.THIS_EXPR.callMethod(this._methodName, [EventHandlerVars.event])) - ], - o.BOOL_TYPE) - ]); + var eventListener = o.THIS_EXPR.callMethod( + 'eventHandler', + [o.THIS_EXPR.prop(this._methodName).callMethod(o.BuiltinMethod.bind, [o.THIS_EXPR])]); if (isPresent(this.eventTarget)) { listenExpr = ViewProperties.renderer.callMethod( 'listenGlobal', [o.literal(this.eventTarget), o.literal(this.eventName), eventListener]); @@ -107,10 +102,9 @@ export class CompileEventListener { listenToDirective(directiveInstance: o.Expression, observablePropName: string) { var subscription = o.variable(`subscription_${this.compileElement.view.subscriptions.length}`); this.compileElement.view.subscriptions.push(subscription); - var eventListener = o.THIS_EXPR.callMethod('eventHandler', [ - o.fn([this._eventParam], - [o.THIS_EXPR.callMethod(this._methodName, [EventHandlerVars.event]).toStmt()]) - ]); + var eventListener = o.THIS_EXPR.callMethod( + 'eventHandler', + [o.THIS_EXPR.prop(this._methodName).callMethod(o.BuiltinMethod.bind, [o.THIS_EXPR])]); this.compileElement.view.createMethod.addStmt( subscription.set(directiveInstance.prop(observablePropName) .callMethod(o.BuiltinMethod.SubscribeObservable, [eventListener]))