Files
sdk/pkg/kernel/lib/transformations/closure_conversion.dart
T
Peter von der Ahé 4f2bdff90b Rename Program to Component
Change-Id: I1a3cc03fba9783807fa637a9d42fdbad68ee7686
Reviewed-on: https://dart-review.googlesource.com/31040
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-03-15 12:22:23 +00:00

41 lines
1.3 KiB
Dart

// 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 Component, Library;
import '../core_types.dart' show CoreTypes;
import 'closure/converter.dart' show ClosureConverter;
import 'closure/info.dart' show ClosureInfo;
import 'closure/invalidate_closures.dart';
Component transformComponent(CoreTypes coreTypes, Component component) {
var info = new ClosureInfo();
info.visitComponent(component);
var convert = new ClosureConverter(coreTypes, info);
component = convert.visitComponent(component);
return new InvalidateClosures().visitComponent(component);
}
void transformLibraries(CoreTypes coreTypes, List<Library> 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]);
}
}