// 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 Program, Library; import '../core_types.dart' show CoreTypes; import 'closure/converter.dart' show ClosureConverter; import 'closure/info.dart' show ClosureInfo; import 'closure/invalidate_closures.dart'; Program transformProgram(CoreTypes coreTypes, Program program) { var info = new ClosureInfo(); info.visitProgram(program); var convert = new ClosureConverter(coreTypes, info); program = convert.visitProgram(program); return new InvalidateClosures().visitProgram(program); } void transformLibraries(CoreTypes coreTypes, List libraries) { var info = new ClosureInfo(); for (var library in libraries) { info.visitLibrary(library); } var convert = new ClosureConverter(coreTypes, info); for (int i = 0; i < libraries.length; i++) { libraries[i] = convert.visitLibrary(libraries[i]); } var invalidator = new InvalidateClosures(); for (int i = 0; i < libraries.length; i++) { invalidator.visitLibrary(libraries[i]); } }