| Index: pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
|
| index 5722d129365294500d9c229b4912f46411c6628e..a193b1e904f5fd69364c91d96fe421779f96507b 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
|
| @@ -60,7 +60,8 @@ const String mainBoilerplate = '''
|
| function copyProperties(from, to) {
|
| var keys = Object.keys(from);
|
| for (var i = 0; i < keys.length; i++) {
|
| - to[keys[i]] = from[keys[i]];
|
| + var key = keys[i];
|
| + to[key] = from[key];
|
| }
|
| }
|
|
|
| @@ -275,15 +276,7 @@ function updateTypes(newTypes) {
|
| // Updates the given holder with the properties of the [newHolder].
|
| // This function is used when a deferred fragment is initialized.
|
| function updateHolder(holder, newHolder) {
|
| - // Firefox doesn't like when important objects have their prototype chain
|
| - // updated. We therefore do this only on V8.
|
| - if (isChrome) {
|
| - var oldPrototype = holder.__proto__;
|
| - newHolder.__proto__ = oldPrototype;
|
| - holder.__proto__ = newHolder;
|
| - } else {
|
| - copyProperties(newHolder, holder);
|
| - }
|
| + copyProperties(newHolder, holder);
|
| return holder;
|
| }
|
|
|
|
|