| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // TODO(ahe): Share these with js_helper.dart. | 7 // TODO(ahe): Share these with js_helper.dart. |
| 8 const FUNCTION_INDEX = 0; | 8 const FUNCTION_INDEX = 0; |
| 9 const NAME_INDEX = 1; | 9 const NAME_INDEX = 1; |
| 10 const CALL_NAME_INDEX = 2; | 10 const CALL_NAME_INDEX = 2; |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 'globalFunctions': globalFunctionsAccess, | 345 'globalFunctions': globalFunctionsAccess, |
| 346 'enabledInvokeOn': compiler.enabledInvokeOn, | 346 'enabledInvokeOn': compiler.enabledInvokeOn, |
| 347 'interceptedNames': interceptedNamesAccess, | 347 'interceptedNames': interceptedNamesAccess, |
| 348 'interceptedNamesSet': interceptedNamesSet, | 348 'interceptedNamesSet': interceptedNamesSet, |
| 349 'notInCspMode': !compiler.useContentSecurityPolicy, | 349 'notInCspMode': !compiler.useContentSecurityPolicy, |
| 350 'needsClassSupport': oldEmitter.needsClassSupport}); | 350 'needsClassSupport': oldEmitter.needsClassSupport}); |
| 351 | 351 |
| 352 jsAst.Expression allClassesAccess = | 352 jsAst.Expression allClassesAccess = |
| 353 emitter.generateEmbeddedGlobalAccess(embeddedNames.ALL_CLASSES); | 353 emitter.generateEmbeddedGlobalAccess(embeddedNames.ALL_CLASSES); |
| 354 | 354 |
| 355 String specProperty = '"${namer.nativeSpecProperty}"'; // "%" | |
| 356 | |
| 357 // Class descriptions are collected in a JS object. | 355 // Class descriptions are collected in a JS object. |
| 358 // 'finishClasses' takes all collected descriptions and sets up | 356 // 'finishClasses' takes all collected descriptions and sets up |
| 359 // the prototype. | 357 // the prototype. |
| 360 // Once set up, the constructors prototype field satisfy: | 358 // Once set up, the constructors prototype field satisfy: |
| 361 // - it contains all (local) members. | 359 // - it contains all (local) members. |
| 362 // - its internal prototype (__proto__) points to the superclass' | 360 // - its internal prototype (__proto__) points to the superclass' |
| 363 // prototype field. | 361 // prototype field. |
| 364 // - the prototype's constructor field points to the JavaScript | 362 // - the prototype's constructor field points to the JavaScript |
| 365 // constructor. | 363 // constructor. |
| 366 // For engines where we have access to the '__proto__' we can manipulate | 364 // For engines where we have access to the '__proto__' we can manipulate |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 (function() { | 566 (function() { |
| 569 var result = $array[$index]; | 567 var result = $array[$index]; |
| 570 if ($check) { | 568 if ($check) { |
| 571 throw new Error( | 569 throw new Error( |
| 572 name + ": expected value of type \'$type\' at index " + ($index) + | 570 name + ": expected value of type \'$type\' at index " + ($index) + |
| 573 " but got " + (typeof result)); | 571 " but got " + (typeof result)); |
| 574 } | 572 } |
| 575 return result; | 573 return result; |
| 576 })()'''; | 574 })()'''; |
| 577 } | 575 } |
| OLD | NEW |