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

Side by Side Diff: lib/runtime/dart/_js_names.js

Issue 1138793002: Tag closures with their types (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Rebase Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 var _js_names = dart.defineLibrary(_js_names, {}); 1 var _js_names = dart.defineLibrary(_js_names, {});
2 var _foreign_helper = dart.lazyImport(_foreign_helper); 2 var _foreign_helper = dart.lazyImport(_foreign_helper);
3 var _js_embedded_names = dart.import(_js_embedded_names); 3 var _js_embedded_names = dart.import(_js_embedded_names);
4 var core = dart.import(core); 4 var core = dart.import(core);
5 var _interceptors = dart.import(_interceptors); 5 var _interceptors = dart.import(_interceptors);
6 var _js_helper = dart.lazyImport(_js_helper); 6 var _js_helper = dart.lazyImport(_js_helper);
7 (function(exports, _foreign_helper, _js_embedded_names, core, _interceptors, _js _helper) { 7 (function(exports, _foreign_helper, _js_embedded_names, core, _interceptors, _js _helper) {
8 'use strict'; 8 'use strict';
9 // Function preserveNames: () → dynamic
10 function preserveNames() { 9 function preserveNames() {
11 } 10 }
11 dart.fn(preserveNames);
12 dart.defineLazyProperties(exports, { 12 dart.defineLazyProperties(exports, {
13 get mangledNames() { 13 get mangledNames() {
14 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _ js_embedded_names.MANGLED_NAMES), false); 14 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _ js_embedded_names.MANGLED_NAMES), false);
15 }, 15 },
16 get reflectiveNames() { 16 get reflectiveNames() {
17 return computeReflectiveNames(exports.mangledNames); 17 return computeReflectiveNames(exports.mangledNames);
18 }, 18 },
19 get mangledGlobalNames() { 19 get mangledGlobalNames() {
20 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _ js_embedded_names.MANGLED_GLOBAL_NAMES), true); 20 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _ js_embedded_names.MANGLED_GLOBAL_NAMES), true);
21 }, 21 },
22 get reflectiveGlobalNames() { 22 get reflectiveGlobalNames() {
23 return computeReflectiveNames(exports.mangledGlobalNames); 23 return computeReflectiveNames(exports.mangledGlobalNames);
24 } 24 }
25 }); 25 });
26 // Function computeMangledNames: (dynamic, bool) → Map<String, String>
27 function computeMangledNames(jsMangledNames, isGlobal) { 26 function computeMangledNames(jsMangledNames, isGlobal) {
28 preserveNames(); 27 preserveNames();
29 let keys = extractKeys(jsMangledNames); 28 let keys = extractKeys(jsMangledNames);
30 let result = dart.map(); 29 let result = dart.map();
31 let getterPrefix = _foreign_helper.JS_GET_NAME('GETTER_PREFIX'); 30 let getterPrefix = _foreign_helper.JS_GET_NAME('GETTER_PREFIX');
32 let getterPrefixLength = getterPrefix.length; 31 let getterPrefixLength = getterPrefix.length;
33 let setterPrefix = _foreign_helper.JS_GET_NAME('SETTER_PREFIX'); 32 let setterPrefix = _foreign_helper.JS_GET_NAME('SETTER_PREFIX');
34 for (let key of dart.as(keys, core.Iterable$(core.String))) { 33 for (let key of dart.as(keys, core.Iterable$(core.String))) {
35 let value = jsMangledNames[key]; 34 let value = jsMangledNames[key];
36 result.set(key, value); 35 result.set(key, value);
37 if (!dart.notNull(isGlobal)) { 36 if (!dart.notNull(isGlobal)) {
38 if (key.startsWith(getterPrefix)) { 37 if (key.startsWith(getterPrefix)) {
39 result.set(`${setterPrefix}${key.substring(getterPrefixLength)}`, `${v alue}=`); 38 result.set(`${setterPrefix}${key.substring(getterPrefixLength)}`, `${v alue}=`);
40 } 39 }
41 } 40 }
42 } 41 }
43 return result; 42 return result;
44 } 43 }
45 // Function computeReflectiveNames: (Map<String, String>) → Map 44 dart.fn(computeMangledNames, core.Map$(core.String, core.String), [dart.dynami c, core.bool]);
46 function computeReflectiveNames(map) { 45 function computeReflectiveNames(map) {
47 preserveNames(); 46 preserveNames();
48 let result = dart.map(); 47 let result = dart.map();
49 map.forEach((mangledName, reflectiveName) => { 48 map.forEach(dart.fn((mangledName, reflectiveName) => {
50 result.set(reflectiveName, mangledName); 49 result.set(reflectiveName, mangledName);
51 }); 50 }, dart.dynamic, [core.String, core.String]));
52 return result; 51 return result;
53 } 52 }
54 // Function extractKeys: (dynamic) → List<dynamic> 53 dart.fn(computeReflectiveNames, core.Map$(core.String, core.String), [core.Map $(core.String, core.String)]);
55 function extractKeys(victim) { 54 function extractKeys(victim) {
56 let result = function(victim, hasOwnProperty) { 55 let result = function(victim, hasOwnProperty) {
57 var result = []; 56 var result = [];
58 for (var key in victim) { 57 for (var key in victim) {
59 if (hasOwnProperty.call(victim, key)) 58 if (hasOwnProperty.call(victim, key))
60 result.push(key); 59 result.push(key);
61 } 60 }
62 return result; 61 return result;
63 }(victim, Object.prototype.hasOwnProperty); 62 }(victim, Object.prototype.hasOwnProperty);
64 return new _interceptors.JSArray.markFixed(result); 63 return new _interceptors.JSArray.markFixed(result);
65 } 64 }
66 // Function unmangleGlobalNameIfPreservedAnyways: (String) → String 65 dart.fn(extractKeys, core.List, [dart.dynamic]);
67 function unmangleGlobalNameIfPreservedAnyways(name) { 66 function unmangleGlobalNameIfPreservedAnyways(name) {
68 let names = _foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _js_embedded_names .MANGLED_GLOBAL_NAMES); 67 let names = _foreign_helper.JS_EMBEDDED_GLOBAL('=Object', _js_embedded_names .MANGLED_GLOBAL_NAMES);
69 return dart.as(_js_helper.JsCache.fetch(names, name), core.String); 68 return dart.as(_js_helper.JsCache.fetch(names, name), core.String);
70 } 69 }
71 // Function unmangleAllIdentifiersIfPreservedAnyways: (String) → String 70 dart.fn(unmangleGlobalNameIfPreservedAnyways, core.String, [core.String]);
72 function unmangleAllIdentifiersIfPreservedAnyways(str) { 71 function unmangleAllIdentifiersIfPreservedAnyways(str) {
73 return str.replace(/[^<,> ]+/g, function(m) { 72 return str.replace(/[^<,> ]+/g, function(m) {
74 return _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.MANGLED_G LOBAL_NAMES)[m] || m; 73 return _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.MANGLED_G LOBAL_NAMES)[m] || m;
75 }); 74 });
76 } 75 }
76 dart.fn(unmangleAllIdentifiersIfPreservedAnyways, core.String, [core.String]);
77 // Exports: 77 // Exports:
78 exports.preserveNames = preserveNames; 78 exports.preserveNames = preserveNames;
79 exports.computeMangledNames = computeMangledNames; 79 exports.computeMangledNames = computeMangledNames;
80 exports.computeReflectiveNames = computeReflectiveNames; 80 exports.computeReflectiveNames = computeReflectiveNames;
81 exports.extractKeys = extractKeys; 81 exports.extractKeys = extractKeys;
82 exports.unmangleGlobalNameIfPreservedAnyways = unmangleGlobalNameIfPreservedAn yways; 82 exports.unmangleGlobalNameIfPreservedAnyways = unmangleGlobalNameIfPreservedAn yways;
83 exports.unmangleAllIdentifiersIfPreservedAnyways = unmangleAllIdentifiersIfPre servedAnyways; 83 exports.unmangleAllIdentifiersIfPreservedAnyways = unmangleAllIdentifiersIfPre servedAnyways;
84 })(_js_names, _foreign_helper, _js_embedded_names, core, _interceptors, _js_help er); 84 })(_js_names, _foreign_helper, _js_embedded_names, core, _interceptors, _js_help er);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698