| 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 '../common/names.dart' show | 9 import '../common/names.dart' show |
| 10 Names, | 10 Names, |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 visitAsyncForIn(ast.AsyncForIn node) { | 372 visitAsyncForIn(ast.AsyncForIn node) { |
| 373 // await for is not yet implemented. | 373 // await for is not yet implemented. |
| 374 return giveup(node, 'await for'); | 374 return giveup(node, 'await for'); |
| 375 } | 375 } |
| 376 | 376 |
| 377 visitAwait(ast.Await node) { | 377 visitAwait(ast.Await node) { |
| 378 ir.Primitive value = visit(node.expression); | 378 ir.Primitive value = visit(node.expression); |
| 379 return irBuilder.buildAwait(value); | 379 return irBuilder.buildAwait(value); |
| 380 } | 380 } |
| 381 | 381 |
| 382 visitYield(ast.Yield node) { |
| 383 ir.Primitive value = visit(node.expression); |
| 384 return irBuilder.buildYield(value, node.hasStar); |
| 385 } |
| 386 |
| 382 visitSyncForIn(ast.SyncForIn node) { | 387 visitSyncForIn(ast.SyncForIn node) { |
| 383 // [node.declaredIdentifier] can be either an [ast.VariableDefinitions] | 388 // [node.declaredIdentifier] can be either an [ast.VariableDefinitions] |
| 384 // (defining a new local variable) or a send designating some existing | 389 // (defining a new local variable) or a send designating some existing |
| 385 // variable. | 390 // variable. |
| 386 ast.Node identifier = node.declaredIdentifier; | 391 ast.Node identifier = node.declaredIdentifier; |
| 387 ast.VariableDefinitions variableDeclaration = | 392 ast.VariableDefinitions variableDeclaration = |
| 388 identifier.asVariableDefinitions(); | 393 identifier.asVariableDefinitions(); |
| 389 Element variableElement = elements.getForInVariable(node); | 394 Element variableElement = elements.getForInVariable(node); |
| 390 Selector selector = elements.getSelector(identifier); | 395 Selector selector = elements.getSelector(identifier); |
| 391 | 396 |
| (...skipping 2000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2392 } | 2397 } |
| 2393 } | 2398 } |
| 2394 node.visitChildren(this); | 2399 node.visitChildren(this); |
| 2395 } | 2400 } |
| 2396 | 2401 |
| 2397 visitFunctionExpression(ast.FunctionExpression node) { | 2402 visitFunctionExpression(ast.FunctionExpression node) { |
| 2398 FunctionElement savedFunction = currentFunction; | 2403 FunctionElement savedFunction = currentFunction; |
| 2399 currentFunction = elements[node]; | 2404 currentFunction = elements[node]; |
| 2400 | 2405 |
| 2401 if (currentFunction.asyncMarker != AsyncMarker.SYNC && | 2406 if (currentFunction.asyncMarker != AsyncMarker.SYNC && |
| 2407 currentFunction.asyncMarker != AsyncMarker.SYNC_STAR && |
| 2402 currentFunction.asyncMarker != AsyncMarker.ASYNC) { | 2408 currentFunction.asyncMarker != AsyncMarker.ASYNC) { |
| 2403 giveup(node, "cannot handle sync*/async* functions"); | 2409 giveup(node, "cannot handle sync*/async* functions"); |
| 2404 } | 2410 } |
| 2405 | 2411 |
| 2406 bool savedInsideInitializer = insideInitializer; | 2412 bool savedInsideInitializer = insideInitializer; |
| 2407 if (node.initializers != null) { | 2413 if (node.initializers != null) { |
| 2408 insideInitializer = true; | 2414 insideInitializer = true; |
| 2409 visit(node.initializers); | 2415 visit(node.initializers); |
| 2410 } | 2416 } |
| 2411 insideInitializer = false; | 2417 insideInitializer = false; |
| (...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3570 if (compiler.backend.isForeign(function)) { | 3576 if (compiler.backend.isForeign(function)) { |
| 3571 return handleForeignCode(node, function, argumentList, callStructure); | 3577 return handleForeignCode(node, function, argumentList, callStructure); |
| 3572 } else { | 3578 } else { |
| 3573 return irBuilder.buildStaticFunctionInvocation(function, callStructure, | 3579 return irBuilder.buildStaticFunctionInvocation(function, callStructure, |
| 3574 translateStaticArguments(argumentList, function, callStructure), | 3580 translateStaticArguments(argumentList, function, callStructure), |
| 3575 sourceInformation: | 3581 sourceInformation: |
| 3576 sourceInformationBuilder.buildCall(node, node.selector)); | 3582 sourceInformationBuilder.buildCall(node, node.selector)); |
| 3577 } | 3583 } |
| 3578 } | 3584 } |
| 3579 } | 3585 } |
| OLD | NEW |