| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart2js.js_emitter; | 5 part of dart2js.js_emitter; |
| 6 | 6 |
| 7 | 7 |
| 8 class OldEmitter implements Emitter { | 8 class OldEmitter implements Emitter { |
| 9 final Compiler compiler; | 9 final Compiler compiler; |
| 10 final CodeEmitterTask task; | 10 final CodeEmitterTask task; |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 function() { | 469 function() { |
| 470 function tmp() {} | 470 function tmp() {} |
| 471 return function (constructor, superConstructor) { | 471 return function (constructor, superConstructor) { |
| 472 tmp.prototype = superConstructor.prototype; | 472 tmp.prototype = superConstructor.prototype; |
| 473 var object = new tmp(); | 473 var object = new tmp(); |
| 474 object.x = 0; delete object.x; // Make object slow. | 474 object.x = 0; delete object.x; // Make object slow. |
| 475 var properties = constructor.prototype; | 475 var properties = constructor.prototype; |
| 476 var members = Object.keys(properties); | 476 var members = Object.keys(properties); |
| 477 for (var i = 0; i < members.length; i++) { | 477 for (var i = 0; i < members.length; i++) { |
| 478 var member = members[i]; | 478 var member = members[i]; |
| 479 if (!Object.hasOwnProperty.call(properties, member)) { |
| 480 continue; |
| 481 } |
| 479 object[member] = properties[member]; | 482 object[member] = properties[member]; |
| 480 } | 483 } |
| 481 // Use a function for `true` here, as functions are stored in the | 484 // Use a function for `true` here, as functions are stored in the |
| 482 // hidden class and not as properties in the object. | 485 // hidden class and not as properties in the object. |
| 483 object[#operatorIsPrefix + constructor.name] = constructor; | 486 object[#operatorIsPrefix + constructor.name] = constructor; |
| 484 object.constructor = constructor; | 487 object.constructor = constructor; |
| 485 constructor.prototype = object; | 488 constructor.prototype = object; |
| 486 return object; | 489 return object; |
| 487 }; | 490 }; |
| 488 }() | 491 }() |
| (...skipping 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2021 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { | 2024 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { |
| 2022 if (element.isInstanceMember) { | 2025 if (element.isInstanceMember) { |
| 2023 cachedClassBuilders.remove(element.enclosingClass); | 2026 cachedClassBuilders.remove(element.enclosingClass); |
| 2024 | 2027 |
| 2025 nativeEmitter.cachedBuilders.remove(element.enclosingClass); | 2028 nativeEmitter.cachedBuilders.remove(element.enclosingClass); |
| 2026 | 2029 |
| 2027 } | 2030 } |
| 2028 } | 2031 } |
| 2029 } | 2032 } |
| 2030 } | 2033 } |
| OLD | NEW |