| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** | 5 /** |
| 6 * A function element that represents a closure call. The signature is copied | 6 * A function element that represents a closure call. The signature is copied |
| 7 * from the given element. | 7 * from the given element. |
| 8 */ | 8 */ |
| 9 class ClosureInvocationElement extends FunctionElement { | 9 class ClosureInvocationElement extends FunctionElement { |
| 10 ClosureInvocationElement(SourceString name, | 10 ClosureInvocationElement(SourceString name, |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 String get finishClassesName | 62 String get finishClassesName |
| 63 => '${namer.ISOLATE}.\$finishClasses'; | 63 => '${namer.ISOLATE}.\$finishClasses'; |
| 64 String get finishIsolateConstructorName | 64 String get finishIsolateConstructorName |
| 65 => '${namer.ISOLATE}.\$finishIsolateConstructor'; | 65 => '${namer.ISOLATE}.\$finishIsolateConstructor'; |
| 66 String get pendingClassesName | 66 String get pendingClassesName |
| 67 => '${namer.ISOLATE}.\$pendingClasses'; | 67 => '${namer.ISOLATE}.\$pendingClasses'; |
| 68 String get isolatePropertiesName | 68 String get isolatePropertiesName |
| 69 => '${namer.ISOLATE}.${namer.ISOLATE_PROPERTIES}'; | 69 => '${namer.ISOLATE}.${namer.ISOLATE_PROPERTIES}'; |
| 70 String get supportsProtoName | 70 String get supportsProtoName |
| 71 => 'supportsProto'; | 71 => 'supportsProto'; |
| 72 String get lazyInitializerName() | 72 String get lazyInitializerName |
| 73 => '${namer.ISOLATE}.\$lazy'; | 73 => '${namer.ISOLATE}.\$lazy'; |
| 74 | 74 |
| 75 final String GETTER_SUFFIX = "?"; | 75 final String GETTER_SUFFIX = "?"; |
| 76 final String SETTER_SUFFIX = "!"; | 76 final String SETTER_SUFFIX = "!"; |
| 77 final String GETTER_SETTER_SUFFIX = "="; | 77 final String GETTER_SETTER_SUFFIX = "="; |
| 78 | 78 |
| 79 String get generateGetterSetterFunction { | 79 String get generateGetterSetterFunction { |
| 80 return """ | 80 return """ |
| 81 function(field, prototype) { | 81 function(field, prototype) { |
| 82 var len = field.length; | 82 var len = field.length; |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 } | 253 } |
| 254 str += "}\\n"; | 254 str += "}\\n"; |
| 255 var newIsolate = new Function(str); | 255 var newIsolate = new Function(str); |
| 256 newIsolate.prototype = isolatePrototype; | 256 newIsolate.prototype = isolatePrototype; |
| 257 isolatePrototype.constructor = newIsolate; | 257 isolatePrototype.constructor = newIsolate; |
| 258 newIsolate.${namer.ISOLATE_PROPERTIES} = isolateProperties; | 258 newIsolate.${namer.ISOLATE_PROPERTIES} = isolateProperties; |
| 259 return newIsolate; | 259 return newIsolate; |
| 260 }"""; | 260 }"""; |
| 261 } | 261 } |
| 262 | 262 |
| 263 String get lazyInitializerFunction() { | 263 String get lazyInitializerFunction { |
| 264 String isolate = namer.CURRENT_ISOLATE; | 264 String isolate = namer.CURRENT_ISOLATE; |
| 265 JavaScriptBackend backend = compiler.backend; | 265 JavaScriptBackend backend = compiler.backend; |
| 266 String cyclicThrow = namer.isolateAccess(backend.cyclicThrowHelper); | 266 String cyclicThrow = namer.isolateAccess(backend.cyclicThrowHelper); |
| 267 return """ | 267 return """ |
| 268 function(prototype, staticName, fieldName, getterName, lazyValue) { | 268 function(prototype, staticName, fieldName, getterName, lazyValue) { |
| 269 var sentinelUndefined = {}; | 269 var sentinelUndefined = {}; |
| 270 var sentinelInProgress = {}; | 270 var sentinelInProgress = {}; |
| 271 prototype[fieldName] = sentinelUndefined; | 271 prototype[fieldName] = sentinelUndefined; |
| 272 var getter = new Function("{ return $isolate." + fieldName + ";}"); | 272 var getter = new Function("{ return $isolate." + fieldName + ";}"); |
| 273 prototype[getterName] = function() { | 273 prototype[getterName] = function() { |
| (...skipping 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 sourceName = token.slowToString(); | 1297 sourceName = token.slowToString(); |
| 1298 } | 1298 } |
| 1299 sourceMapBuilder.addMapping( | 1299 sourceMapBuilder.addMapping( |
| 1300 sourceFile, token.charOffset, sourceName, offset); | 1300 sourceFile, token.charOffset, sourceName, offset); |
| 1301 }); | 1301 }); |
| 1302 return sourceMapBuilder.build(compiledFile); | 1302 return sourceMapBuilder.build(compiledFile); |
| 1303 } | 1303 } |
| 1304 } | 1304 } |
| 1305 | 1305 |
| 1306 typedef void DefineMemberFunction(String invocationName, CodeBuffer definition); | 1306 typedef void DefineMemberFunction(String invocationName, CodeBuffer definition); |
| OLD | NEW |