Index: pkg/front_end/lib/src/fasta/source/diet_listener.dart |
diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
index 750a3d838cf13b243400c8b381329a63b0dad209..f0f69848121e59ee479b7a8476e0c09e0f230449 100644 |
--- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
+++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart |
@@ -22,8 +22,10 @@ import '../parser/parser.dart' show Parser, optional; |
import '../scanner/token.dart' show BeginGroupToken, Token; |
+import '../parser/dart2js_native.dart' show skipDart2jsNativeClause; |
+ |
import '../parser/dart_vm_native.dart' |
- show removeNativeClause, skipNativeClause; |
+ show removeNativeClause, skipVmNativeClause; |
import '../util/link.dart' show Link; |
@@ -482,11 +484,13 @@ class DietListener extends StackListener { |
@override |
Token handleUnrecoverableError(Token token, FastaMessage message) { |
if (isDartLibrary && message.code == codeExpectedBlockToSkip) { |
- Token recover = skipNativeClause(token); |
- if (recover != null) { |
- assert(isTargetingDartVm); |
- return recover; |
+ Token recover; |
+ if (library.loader.target.forDart2js) { |
ahe
2017/04/27 13:34:34
Could be in a subclass?
Siggi Cherem (dart-lang)
2017/04/28 21:37:20
Moved this into the target instead.
|
+ recover = skipDart2jsNativeClause(token); |
+ } else if (library.loader.target.forVm) { |
+ recover = skipVmNativeClause(token); |
} |
+ if (recover != null) return recover; |
} |
return super.handleUnrecoverableError(token, message); |
} |
@@ -568,11 +572,6 @@ class DietListener extends StackListener { |
return builder; |
} |
- bool get isTargetingDartVm { |
- // TODO(ahe): Find a more reliable way to check if this is the Dart VM. |
- return !coreTypes.containsLibrary("dart:_js_helper"); |
- } |
- |
@override |
void debugEvent(String name) { |
// printEvent(name); |