From 4b79fb1a2f3e0475770568464b15ab64c9ea4aff Mon Sep 17 00:00:00 2001 From: Lucas Mirelmann Date: Thu, 28 Jan 2016 15:25:45 +0100 Subject: [PATCH] fix($parse): Copy `inputs` for expressions with expensive checks --- src/ng/parse.js | 1 + test/ng/parseSpec.js | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/ng/parse.js b/src/ng/parse.js index 7905c206a985..b68ed7d8c458 100644 --- a/src/ng/parse.js +++ b/src/ng/parse.js @@ -1819,6 +1819,7 @@ function $ParseProvider() { for (var i = 0; fn.inputs && i < fn.inputs.length; ++i) { fn.inputs[i] = expensiveChecksInterceptor(fn.inputs[i]); } + expensiveCheckFn.inputs = fn.inputs; return expensiveCheckFn; diff --git a/test/ng/parseSpec.js b/test/ng/parseSpec.js index 355c922436c4..a8ac9f4a07ba 100644 --- a/test/ng/parseSpec.js +++ b/test/ng/parseSpec.js @@ -2457,6 +2457,13 @@ describe('parser', function() { expect($parse.$$runningExpensiveChecks()).toEqual(false); }); }); + + it('should handle `inputs` when running with expensive checks', inject(function($parse) { + expect(function() { + scope.$watch($parse('a + b', null, true), noop); + scope.$digest(); + }).not.toThrow(); + })); }); });