diff --git a/src/ng/compile.js b/src/ng/compile.js index 0963b8d5d2bf..fd8a8729d87a 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1438,13 +1438,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // we are out of sync and need to copy if (parentValue !== lastValue) { // parent changed and it has precedence - lastValue = isolateScope[scopeName] = parentValue; + isolateScope[scopeName] = parentValue; } else { // if the parent can be assigned then do so - parentSet(scope, parentValue = lastValue = isolateScope[scopeName]); + parentSet(scope, parentValue = isolateScope[scopeName]); } } - return parentValue; + return lastValue = parentValue; }); break; diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 6de96f651b2e..c017bfa67e8b 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -2386,6 +2386,24 @@ describe('$compile', function() { expect(componentScope.refAlias).toBe($rootScope.name); })); + it('should not break if local and origin both change to the same value', inject(function() { + $rootScope.name = 'aaa'; + + compile('