From 0b75bb256761342d321b92540a477d6e59301a48 Mon Sep 17 00:00:00 2001 From: KyleWong Date: Thu, 8 Oct 2020 18:19:04 +0800 Subject: [PATCH] Support customized transformer for developers. --- pkg/vm/lib/target/flutter.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/vm/lib/target/flutter.dart b/pkg/vm/lib/target/flutter.dart index 1eadf20c3b27..0c27f801c10c 100644 --- a/pkg/vm/lib/target/flutter.dart +++ b/pkg/vm/lib/target/flutter.dart @@ -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 _flutterProgramTransformers = []; + + static List get flutterProgramTransformers => _flutterProgramTransformers; + @override String get name => 'flutter'; @@ -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