{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/11781","labels_url":"https://api.github.com/repos/angular/angular.js/issues/11781/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/11781/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/11781/events","html_url":"https://github.com/angular/angular.js/issues/11781","id":72322451,"number":11781,"title":"Interpolations containing HTML entities fail in IE11 when MutationObservers are active","user":{"login":"zachsnow","id":770808,"avatar_url":"https://avatars.githubusercontent.com/u/770808?v=3","gravatar_id":"","url":"https://api.github.com/users/zachsnow","html_url":"https://github.com/zachsnow","followers_url":"https://api.github.com/users/zachsnow/followers","following_url":"https://api.github.com/users/zachsnow/following{/other_user}","gists_url":"https://api.github.com/users/zachsnow/gists{/gist_id}","starred_url":"https://api.github.com/users/zachsnow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachsnow/subscriptions","organizations_url":"https://api.github.com/users/zachsnow/orgs","repos_url":"https://api.github.com/users/zachsnow/repos","events_url":"https://api.github.com/users/zachsnow/events{/privacy}","received_events_url":"https://api.github.com/users/zachsnow/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/browser:%20IE11","name":"browser: IE11","color":"207de5"},{"url":"https://api.github.com/repos/angular/angular.js/labels/frequency:%20moderate","name":"frequency: moderate","color":"fef2c0"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20investigation","name":"needs: investigation","color":"444444"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20more%20info","name":"needs: more info","color":"d7eb9f"},{"url":"https://api.github.com/repos/angular/angular.js/labels/severity:%20broken%20expected%20use","name":"severity: broken expected use","color":"fbda00"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/80","html_url":"https://github.com/angular/angular.js/milestones/1.4.x","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/80/labels","id":901585,"number":80,"title":"1.4.x","description":"","creator":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"open_issues":60,"closed_issues":72,"state":"open","created_at":"2014-12-12T10:36:27Z","updated_at":"2015-06-22T21:41:06Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2015-05-01T00:53:00Z","updated_at":"2015-06-24T00:36:23Z","closed_at":"2015-06-06T09:27:23Z","body":"Text nodes that contain unicode / HTML entities are not properly interpolated in IE11 when there is a `MutationObserver` active.  Consider the following example.\r\n\r\n```html\r\n<!doctype html>\r\n<html>\r\n  <head>\r\n    <script src=\"https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-rc.1/angular.min.js\"></script>\r\n    <script>\r\n      window.addMutationObserver = function(){\r\n        if(!window.MutationObserver){\r\n          return;\r\n        }\r\n        new window.MutationObserver(function(){}).observe(document.body, {\r\n          childList: true,\r\n          subtree: true\r\n        });\r\n      };\r\n\r\n      angular.module('example', []);\r\n    </script>\r\n  </head>\r\n  <body onload=\"addMutationObserver()\" ng-app=\"example\">\r\n    <span>{{ 'This works.' }}</span>\r\n    <span>&mdash; {{ \"This doesn't.\" }}</span>\r\n  </body>\r\n</html>\r\n```\r\n\r\nThe output is:\r\n\r\n```This works. — {{ \"This doesn't.\" }}```\r\n\r\nIf you remove the `MutationObserver` the code works as expected. If you don't set `subtree: true` the code works as expected. If you remove the entity it also works as expected.  If instead you replace the entity with the actual character (—) it remains broken.  It's also broken in 1.3.\r\n\r\nWe recently started seeing this bug because Wordpress has some Emoji polyfills that use `MutationObserver`.  This issue breaks interpolation even when the Angular application is running in an iframe and the code that is attaching the `MutationObserver` is in the *parent* frame, which seems pretty crazy. Because of this we seek a workaround on the Angular side, as we can't change every site that might embed Angular in an iframe -- perhaps this is a bug in IE.\r\n"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/114682956","html_url":"https://github.com/angular/angular.js/issues/11781#issuecomment-114682956","issue_url":"https://api.github.com/repos/angular/angular.js/issues/11781","id":114682956,"user":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"created_at":"2015-06-24T00:36:23Z","updated_at":"2015-06-24T00:36:23Z","body":"Got to keep on the bleeding edge @shahata !"}}