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 library dart2js.ir_builder_task; | 5 library dart2js.ir_builder_task; |
6 | 6 |
7 import '../closure.dart' as closurelib; | 7 import '../closure.dart' as closurelib; |
8 import '../closure.dart' hide ClosureScope; | 8 import '../closure.dart' hide ClosureScope; |
9 import '../constants/expressions.dart'; | 9 import '../constants/expressions.dart'; |
10 import '../dart_types.dart'; | 10 import '../dart_types.dart'; |
(...skipping 3204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3215 validateArgumentCount(exactly: 2); | 3215 validateArgumentCount(exactly: 2); |
3216 List<ir.Primitive> arguments = argumentNodes.mapToList(visit); | 3216 List<ir.Primitive> arguments = argumentNodes.mapToList(visit); |
3217 return irBuilder.buildStringConcatenation(arguments); | 3217 return irBuilder.buildStringConcatenation(arguments); |
3218 | 3218 |
3219 case 'JS_CURRENT_ISOLATE_CONTEXT': | 3219 case 'JS_CURRENT_ISOLATE_CONTEXT': |
3220 validateArgumentCount(exactly: 0); | 3220 validateArgumentCount(exactly: 0); |
3221 | 3221 |
3222 if (!compiler.hasIsolateSupport) { | 3222 if (!compiler.hasIsolateSupport) { |
3223 // If the isolate library is not used, we just generate code | 3223 // If the isolate library is not used, we just generate code |
3224 // to fetch the current isolate. | 3224 // to fetch the current isolate. |
3225 continue GET_CURRENT_ISOLATE; | 3225 continue GET_STATIC_STATE; |
3226 } | 3226 } |
3227 return buildIsolateHelperInvocation('_currentIsolate', | 3227 return buildIsolateHelperInvocation('_currentIsolate', |
3228 CallStructure.NO_ARGS); | 3228 CallStructure.NO_ARGS); |
3229 | 3229 |
3230 GET_CURRENT_ISOLATE: case 'JS_CURRENT_ISOLATE': | 3230 GET_STATIC_STATE: case 'JS_GET_STATIC_STATE': |
3231 validateArgumentCount(exactly: 0); | 3231 validateArgumentCount(exactly: 0); |
3232 | 3232 |
3233 return irBuilder.buildForeignCode( | 3233 return irBuilder.buildForeignCode( |
3234 js.js.parseForeignJS(backend.namer.currentIsolate), | 3234 js.js.parseForeignJS(backend.namer.staticStateHolder), |
3235 const <ir.Primitive>[], | 3235 const <ir.Primitive>[], |
3236 NativeBehavior.PURE); | 3236 NativeBehavior.PURE); |
3237 | 3237 |
3238 case 'JS_CALL_IN_ISOLATE': | 3238 case 'JS_CALL_IN_ISOLATE': |
3239 validateArgumentCount(exactly: 2); | 3239 validateArgumentCount(exactly: 2); |
3240 | 3240 |
3241 if (!compiler.hasIsolateSupport) { | 3241 if (!compiler.hasIsolateSupport) { |
3242 ir.Primitive closure = visit(argumentNodes.tail.head); | 3242 ir.Primitive closure = visit(argumentNodes.tail.head); |
3243 return irBuilder.buildCallInvocation(closure, CallStructure.NO_ARGS, | 3243 return irBuilder.buildCallInvocation(closure, CallStructure.NO_ARGS, |
3244 const <ir.Primitive>[]); | 3244 const <ir.Primitive>[]); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3319 } | 3319 } |
3320 | 3320 |
3321 processSetStatic(ir.SetStatic node) { | 3321 processSetStatic(ir.SetStatic node) { |
3322 node.body = replacementFor(node.body); | 3322 node.body = replacementFor(node.body); |
3323 } | 3323 } |
3324 | 3324 |
3325 processContinuation(ir.Continuation node) { | 3325 processContinuation(ir.Continuation node) { |
3326 node.body = replacementFor(node.body); | 3326 node.body = replacementFor(node.body); |
3327 } | 3327 } |
3328 } | 3328 } |
OLD | NEW |