diff --git a/src/ng/compile.js b/src/ng/compile.js old mode 100644 new mode 100755 index 2dddf82dcbff..9bbadd0fc839 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -591,8 +591,8 @@ function $CompileProvider($provide) { if (!node) { throw ngError(51, "Unterminated attribute, found '{0}' but no matching '{1}' found.", attrStart, attrEnd); } - if (node.hasAttribute(attrStart)) depth++; - if (node.hasAttribute(attrEnd)) depth--; + if (node.hasAttribute && node.hasAttribute(attrStart)) depth++; + if (node.hasAttribute && node.hasAttribute(attrEnd)) depth--; nodes.push(node); node = node.nextSibling; } while (depth > 0); diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 95b2ab72d93f..d5833337657a 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -2746,6 +2746,17 @@ describe('$compile', function() { expect(element.text()).toEqual('1A1B;2A2B;'); })); + it('should group on embedded text nodes', inject(function($compile, $rootScope) { + $rootScope.show = false; + element = $compile( + '