3057283f0c
Target-specific modular transformations have to be able to cope with external libraries. Target-specific global transformations should be optimizations, and not required for correctness, since a simple linker may choose not to perform them. Make mixin resolution modular by making it fail when a mixed-in class comes from an external library. (We cannot mix in such a class because we do not necessarily have all class members.) R=asgerf@google.com Review-Url: https://codereview.chromium.org/2671653003 .
24 lines
755 B
Dart
24 lines
755 B
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.target.vmcc;
|
|
|
|
import '../ast.dart' show Program;
|
|
import '../transformations/closure_conversion.dart' as cc show transformProgram;
|
|
|
|
import 'targets.dart' show TargetFlags;
|
|
import 'vm.dart' as vm_target;
|
|
|
|
class VmClosureConvertedTarget extends vm_target.VmTarget {
|
|
VmClosureConvertedTarget(TargetFlags flags) : super(flags);
|
|
|
|
@override
|
|
String get name => "vmcc";
|
|
|
|
@override
|
|
void performGlobalTransformations(Program program) {
|
|
super.performGlobalTransformations(program);
|
|
cc.transformProgram(program);
|
|
}
|
|
}
|