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

Unified Diff: dart/sdk/lib/_internal/lib/js_names.dart

Issue 23996002: Use interceptors to handle runtime types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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
Index: dart/sdk/lib/_internal/lib/js_names.dart
diff --git a/dart/sdk/lib/_internal/lib/js_names.dart b/dart/sdk/lib/_internal/lib/js_names.dart
index 9eaf777c4119a135644e74d136f77a04511a481b..9232206513962959c5596ee82fc991655ca4b643 100644
--- a/dart/sdk/lib/_internal/lib/js_names.dart
+++ b/dart/sdk/lib/_internal/lib/js_names.dart
@@ -8,6 +8,8 @@ import 'dart:_foreign_helper' show JS, JS_GET_NAME;
import 'dart:_js_helper' show JsCache;
+import 'dart:_interceptors' show JSExtendableArray;
+
/// No-op method that is called to inform the compiler that unmangled named
/// must be preserved.
preserveNames() {}
@@ -64,7 +66,7 @@ Map<String, String> computeReflectiveNames(Map<String, String> map) {
}
List extractKeys(victim) {
- return JS('List', '''
+ return JS('JSExtendableArray', '''
(function(victim, hasOwnProperty) {
var result = [];
for (var key in victim) {
@@ -87,5 +89,5 @@ List extractKeys(victim) {
*/
String unmangleGlobalNameIfPreservedAnyways(String name) {
var names = JS('=Object', 'init.mangledGlobalNames');
- return JsCache.fetch(names, name);
+ return JS('String|Null', '#', JsCache.fetch(names, name));
}

Powered by Google App Engine
This is Rietveld 408576698