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

Unified Diff: lib/src/transformer/utils.dart

Issue 580283004: Add JsInitializerGenerator (Closed) Base URL: https://github.com/dart-lang/js-interop.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « lib/src/transformer/library_transformer.dart ('k') | test/transformer/all_tests.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/transformer/utils.dart
diff --git a/lib/src/transformer/utils.dart b/lib/src/transformer/utils.dart
index 505e3854f582d6b7dbf40ffa7bac516871f3ae67..e4066c64be79dfe78b8c7b3c2a666df7fc139ed8 100644
--- a/lib/src/transformer/utils.dart
+++ b/lib/src/transformer/utils.dart
@@ -4,12 +4,15 @@
library js.transformer.utils;
-import 'package:analyzer/src/generated/element.dart';
import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/src/generated/element.dart';
+import 'package:barback/barback.dart';
import 'package:js/src/metadata.dart';
+import 'package:path/path.dart' as path;
import 'package:quiver/iterables.dart' show max;
-const String INITIALIZER_SUFFIX = "__init_js__.dart";
+const String DART_INITIALIZER_SUFFIX = "__init_js__.dart";
+const String JS_INITIALIZER_SUFFIX = "__init_js__.js";
JsProxy getProxyAnnotation(ClassElement interface, ClassElement jsProxyClass) {
var node = interface.node;
@@ -53,3 +56,25 @@ int getInsertImportOffset(LibraryElement library) {
}
return insertImportOffset;
}
+
+
+final illegalIdRegex = new RegExp(r'[^a-zA-Z0-9_]');
+
+String assetIdToPrefix(AssetId id) =>
+ '_js__${id.package}__${id.path.replaceAll(illegalIdRegex, '_')}';
+
+String assetIdToJsExportCall(AssetId id) =>
+ '_export_${id.path.replaceAll(illegalIdRegex, '_')}(dart);';
+
+// TODO(justinfagnani): put this in code_transformers ?
+String getImportUri(AssetId importId, AssetId from) {
+ if (importId.path.startsWith('lib/')) {
+ // we support package imports
+ return "package:${importId.package}/${importId.path.substring(4)}";
+ } else if (importId.package == from.package) {
+ // we can support relative imports
+ return path.relative(importId.path, from: path.dirname(from.path));
+ }
+ // cannot import
+ return null;
+}
« no previous file with comments | « lib/src/transformer/library_transformer.dart ('k') | test/transformer/all_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698