Skip to content

Commit

Permalink
Support customized transformer for developers.
Browse files Browse the repository at this point in the history
  • Loading branch information
kangwang1988 authored and kylewong.wk committed Sep 12, 2021
1 parent 01e822d commit 0b75bb2
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions pkg/vm/lib/target/flutter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,19 @@ import 'package:kernel/target/targets.dart';
import 'package:kernel/transformations/track_widget_constructor_locations.dart';
import 'package:vm/target/vm.dart' show VmTarget;

abstract class FlutterProgramTransformer {
void transform(Component component);
}

class FlutterTarget extends VmTarget {
FlutterTarget(TargetFlags flags) : super(flags);

late final WidgetCreatorTracker _widgetTracker = WidgetCreatorTracker();

static List<FlutterProgramTransformer> _flutterProgramTransformers = [];

static List<FlutterProgramTransformer> get flutterProgramTransformers => _flutterProgramTransformers;

@override
String get name => 'flutter';

Expand Down Expand Up @@ -60,6 +68,12 @@ class FlutterTarget extends VmTarget {
super.performPreConstantEvaluationTransformations(
component, coreTypes, libraries, diagnosticReporter,
logger: logger, changedStructureNotifier: changedStructureNotifier);
if (_flutterProgramTransformers.length > 0) {
int flutterProgramTransformersLen = _flutterProgramTransformers.length;
for (int i=0; i<flutterProgramTransformersLen; i++) {
_flutterProgramTransformers[i].transform(component);
}
}
if (flags.trackWidgetCreation) {
_widgetTracker.transform(component, libraries, changedStructureNotifier);
}
Expand Down

0 comments on commit 0b75bb2

Please sign in to comment.