Index: pkg/front_end/lib/src/fasta/target_implementation.dart |
diff --git a/pkg/front_end/lib/src/fasta/target_implementation.dart b/pkg/front_end/lib/src/fasta/target_implementation.dart |
index 708795af65bb2c1722f76b4e9d4e9c4b58a04487..6d3ef741747c5e420f9a1ebab28b1ec377616b19 100644 |
--- a/pkg/front_end/lib/src/fasta/target_implementation.dart |
+++ b/pkg/front_end/lib/src/fasta/target_implementation.dart |
@@ -88,6 +88,20 @@ abstract class TargetImplementation extends Target { |
} |
} |
+ /// Whether the `native` language extension is supported within [library]. |
+ /// |
+ /// The `native` language extension is not part of the language specification, |
+ /// means something else to each target, and is enabled differently for each |
+ /// target implementation. For example, the VM target enables it everywhere |
+ /// because of existing support for "dart-ext:" native extensions, but targets |
+ /// like dart2js only enable it on the core libraries. |
+ /// |
+ /// This default implementation assumes a VM target, but it can be overriden |
+ /// in subclasses to change the behavior. |
+ // TODO(sigmund,ahe): limit this to `dart-ext` libraries only (see |
+ // https://github.com/dart-lang/sdk/issues/29763). |
+ bool enableNative(LibraryBuilder library) => true; |
+ |
Token skipNativeClause(Token token) => vm.skipNativeClause(token); |
String extractNativeMethodName(Token token) => |