| // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| library kernel.transformations.closure_conversion; |
| |
| import '../ast.dart' show Class, Program; |
| |
| import '../core_types.dart' show CoreTypes; |
| |
| import 'closure/converter.dart' show ClosureConverter; |
| |
| import 'closure/info.dart' show ClosureInfo; |
| |
| import 'closure/invalidate_closures.dart'; |
| import 'closure/mock.dart' show mockUpContext; |
| |
| Program transformProgram(Program program) { |
| var info = new ClosureInfo(); |
| info.visitProgram(program); |
| |
| CoreTypes coreTypes = new CoreTypes(program); |
| Class contextClass = mockUpContext(coreTypes, program); |
| var convert = new ClosureConverter(coreTypes, info, contextClass); |
| program = convert.visitProgram(program); |
| return new InvalidateClosures().visitProgram(program); |
| } |