Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Unified Diff: lib/compiler/implementation/scanner/listener.dart

Issue 10830303: Refactor Library/CompilationUnit and how we define local Scope. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix reference in dart2js_mirror.dart Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/compiler/implementation/scanner/listener.dart
diff --git a/lib/compiler/implementation/scanner/listener.dart b/lib/compiler/implementation/scanner/listener.dart
index 9ffe69c5350655b9eda0725c427dfeb58f0e60e2..a6c8d782fc6b25030a5ae2f1e07fd673c6f15c77 100644
--- a/lib/compiler/implementation/scanner/listener.dart
+++ b/lib/compiler/implementation/scanner/listener.dart
@@ -556,10 +556,14 @@ class ElementListener extends Listener {
}
StringNode firstArgument = popLiteralString();
Identifier tag = popNode();
- compilationUnitElement.addTag(new ScriptTag(tag, firstArgument,
- argumentName, prefix,
- beginToken, endToken),
- listener);
+ LibraryElement library = compilationUnitElement.getLibrary();
+ if (library.entryCompilationUnit != compilationUnitElement) {
+ // Only allow script tags in the entry compilation unit.
+ listener.cancel("script tags not allowed here", node: tag);
+ }
+ ScriptTag scriptTag = new ScriptTag(tag, firstArgument, argumentName,
+ prefix, beginToken, endToken);
+ library.addTag(scriptTag, listener);
}
void endClassDeclaration(int interfacesCount, Token beginToken,

Powered by Google App Engine
This is Rietveld 408576698