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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 case JsBuiltin.typeName: | 292 case JsBuiltin.typeName: |
293 return jsAst.js.expressionTemplateFor("#.$typeNameProperty"); | 293 return jsAst.js.expressionTemplateFor("#.$typeNameProperty"); |
294 | 294 |
295 case JsBuiltin.rawRuntimeType: | 295 case JsBuiltin.rawRuntimeType: |
296 return jsAst.js.expressionTemplateFor("#.constructor"); | 296 return jsAst.js.expressionTemplateFor("#.constructor"); |
297 | 297 |
298 case JsBuiltin.createFunctionType: | 298 case JsBuiltin.createFunctionType: |
299 return backend.rti.representationGenerator | 299 return backend.rti.representationGenerator |
300 .templateForCreateFunctionType; | 300 .templateForCreateFunctionType; |
301 | 301 |
| 302 case JsBuiltin.isSubtype: |
| 303 // TODO(floitsch): move this closer to where is-check properties are |
| 304 // built. |
| 305 String isPrefix = namer.operatorIsPrefix; |
| 306 return jsAst.js.expressionTemplateFor( |
| 307 "('$isPrefix' + #) in #.prototype"); |
| 308 |
302 default: | 309 default: |
303 compiler.internalError(NO_LOCATION_SPANNABLE, | 310 compiler.internalError(NO_LOCATION_SPANNABLE, |
304 "Unhandled Builtin: $builtin"); | 311 "Unhandled Builtin: $builtin"); |
305 return null; | 312 return null; |
306 } | 313 } |
307 } | 314 } |
308 | 315 |
309 List<jsAst.Statement> buildTrivialNsmHandlers(){ | 316 List<jsAst.Statement> buildTrivialNsmHandlers(){ |
310 return nsmEmitter.buildTrivialNsmHandlers(); | 317 return nsmEmitter.buildTrivialNsmHandlers(); |
311 } | 318 } |
(...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1934 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { | 1941 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { |
1935 if (element.isInstanceMember) { | 1942 if (element.isInstanceMember) { |
1936 cachedClassBuilders.remove(element.enclosingClass); | 1943 cachedClassBuilders.remove(element.enclosingClass); |
1937 | 1944 |
1938 nativeEmitter.cachedBuilders.remove(element.enclosingClass); | 1945 nativeEmitter.cachedBuilders.remove(element.enclosingClass); |
1939 | 1946 |
1940 } | 1947 } |
1941 } | 1948 } |
1942 } | 1949 } |
1943 } | 1950 } |
OLD | NEW |