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

Side by Side Diff: test/codegen/expect/_js_names/_js_names.js

Issue 962083002: support the JS builtin (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 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; 1 var _js_names;
2 (function(_js_names) { 2 (function(_js_names) {
3 'use strict'; 3 'use strict';
4 // Function preserveNames: () → dynamic 4 // Function preserveNames: () → dynamic
5 function preserveNames() { 5 function preserveNames() {
6 } 6 }
7 dart.defineLazyProperties(_js_names, { 7 dart.defineLazyProperties(_js_names, {
8 get mangledNames() { 8 get mangledNames() {
9 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', d art.as(_js_embedded_names.MANGLED_NAMES, core.String)), false); 9 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', d art.as(_js_embedded_names.MANGLED_NAMES, core.String)), false);
10 }, 10 },
11 get reflectiveNames() { 11 get reflectiveNames() {
12 return computeReflectiveNames(_js_names.mangledNames); 12 return computeReflectiveNames(_js_names.mangledNames);
13 }, 13 },
14 get mangledGlobalNames() { 14 get mangledGlobalNames() {
15 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', d art.as(_js_embedded_names.MANGLED_GLOBAL_NAMES, core.String)), true); 15 return computeMangledNames(_foreign_helper.JS_EMBEDDED_GLOBAL('=Object', d art.as(_js_embedded_names.MANGLED_GLOBAL_NAMES, core.String)), true);
16 }, 16 },
17 get reflectiveGlobalNames() { 17 get reflectiveGlobalNames() {
18 return computeReflectiveNames(_js_names.mangledGlobalNames); 18 return computeReflectiveNames(_js_names.mangledGlobalNames);
19 } 19 }
20 }); 20 });
21 // Function computeMangledNames: (dynamic, bool) → Map<String, String> 21 // Function computeMangledNames: (dynamic, bool) → Map<String, String>
22 function computeMangledNames(jsMangledNames, isGlobal) { 22 function computeMangledNames(jsMangledNames, isGlobal) {
23 preserveNames(); 23 preserveNames();
24 let keys = extractKeys(jsMangledNames); 24 let keys = extractKeys(jsMangledNames);
25 let result = dart.map(); 25 let result = dart.map();
26 let getterPrefix = _foreign_helper.JS_GET_NAME('GETTER_PREFIX'); 26 let getterPrefix = _foreign_helper.JS_GET_NAME('GETTER_PREFIX');
27 let getterPrefixLength = getterPrefix.length; 27 let getterPrefixLength = getterPrefix.length;
28 let setterPrefix = _foreign_helper.JS_GET_NAME('SETTER_PREFIX'); 28 let setterPrefix = _foreign_helper.JS_GET_NAME('SETTER_PREFIX');
29 for (let key of keys) { 29 for (let key of keys) {
30 let value = dart.as(_foreign_helper.JS('String', '#[#]', jsMangledNames, k ey), core.String); 30 let value = jsMangledNames[key];
31 result.set(key, value); 31 result.set(key, value);
32 if (!dart.notNull(isGlobal)) { 32 if (!dart.notNull(isGlobal)) {
33 if (key.startsWith(getterPrefix)) { 33 if (key.startsWith(getterPrefix)) {
34 result.set(`${setterPrefix}${key.substring(getterPrefixLength)}`, `${v alue}=`); 34 result.set(`${setterPrefix}${key.substring(getterPrefixLength)}`, `${v alue}=`);
35 } 35 }
36 } 36 }
37 } 37 }
38 return result; 38 return result;
39 } 39 }
40 // Function computeReflectiveNames: (Map<String, String>) → Map 40 // Function computeReflectiveNames: (Map<String, String>) → Map
41 function computeReflectiveNames(map) { 41 function computeReflectiveNames(map) {
42 preserveNames(); 42 preserveNames();
43 let result = dart.map(); 43 let result = dart.map();
44 map.forEach((mangledName, reflectiveName) => { 44 map.forEach((mangledName, reflectiveName) => {
45 result.set(reflectiveName, mangledName); 45 result.set(reflectiveName, mangledName);
46 }); 46 });
47 return result; 47 return result;
48 } 48 }
49 // Function extractKeys: (dynamic) → List<dynamic> 49 // Function extractKeys: (dynamic) → List<dynamic>
50 function extractKeys(victim) { 50 function extractKeys(victim) {
51 let result = _foreign_helper.JS('', '\n(function(victim, hasOwnProperty) {\n var result = [];\n for (var key in victim) {\n if (hasOwnProperty.call(vic tim, key)) result.push(key);\n }\n return result;\n})(#, Object.prototype.hasO wnProperty)', victim); 51 let result = function(victim, hasOwnProperty) {
52 var result = [];
53 for (var key in victim) {
54 if (hasOwnProperty.call(victim, key))
55 result.push(key);
56 }
57 return result;
58 }(victim, Object.prototype.hasOwnProperty);
52 return new _interceptors.JSArray.markFixed(result); 59 return new _interceptors.JSArray.markFixed(result);
53 } 60 }
54 // Function unmangleGlobalNameIfPreservedAnyways: (String) → String 61 // Function unmangleGlobalNameIfPreservedAnyways: (String) → String
55 function unmangleGlobalNameIfPreservedAnyways(name) { 62 function unmangleGlobalNameIfPreservedAnyways(name) {
56 let names = _foreign_helper.JS_EMBEDDED_GLOBAL('=Object', dart.as(_js_embedd ed_names.MANGLED_GLOBAL_NAMES, core.String)); 63 let names = _foreign_helper.JS_EMBEDDED_GLOBAL('=Object', dart.as(_js_embedd ed_names.MANGLED_GLOBAL_NAMES, core.String));
57 return dart.as(_js_helper.JsCache.fetch(names, name), core.String); 64 return dart.as(_js_helper.JsCache.fetch(names, name), core.String);
58 } 65 }
59 // Function unmangleAllIdentifiersIfPreservedAnyways: (String) → String 66 // Function unmangleAllIdentifiersIfPreservedAnyways: (String) → String
60 function unmangleAllIdentifiersIfPreservedAnyways(str) { 67 function unmangleAllIdentifiersIfPreservedAnyways(str) {
61 return dart.as(_foreign_helper.JS("String", "(#).replace(/[^<,> ]+/g," + "fu nction(m) { return #[m] || m; })", str, _foreign_helper.JS_EMBEDDED_GLOBAL('', d art.as(_js_embedded_names.MANGLED_GLOBAL_NAMES, core.String))), core.String); 68 return str.replace(/[^<,> ]+/g, function(m) {
69 return _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_embedded_names.M ANGLED_GLOBAL_NAMES, core.String))[m] || m;
70 });
62 } 71 }
63 // Exports: 72 // Exports:
64 _js_names.preserveNames = preserveNames; 73 _js_names.preserveNames = preserveNames;
65 _js_names.computeMangledNames = computeMangledNames; 74 _js_names.computeMangledNames = computeMangledNames;
66 _js_names.computeReflectiveNames = computeReflectiveNames; 75 _js_names.computeReflectiveNames = computeReflectiveNames;
67 _js_names.extractKeys = extractKeys; 76 _js_names.extractKeys = extractKeys;
68 _js_names.unmangleGlobalNameIfPreservedAnyways = unmangleGlobalNameIfPreserved Anyways; 77 _js_names.unmangleGlobalNameIfPreservedAnyways = unmangleGlobalNameIfPreserved Anyways;
69 _js_names.unmangleAllIdentifiersIfPreservedAnyways = unmangleAllIdentifiersIfP reservedAnyways; 78 _js_names.unmangleAllIdentifiersIfPreservedAnyways = unmangleAllIdentifiersIfP reservedAnyways;
70 })(_js_names || (_js_names = {})); 79 })(_js_names || (_js_names = {}));
OLDNEW
« no previous file with comments | « test/codegen/expect/_js_helper/_js_helper.js ('k') | test/codegen/expect/_js_primitives/_js_primitives.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698