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

Side by Side Diff: pkg/dev_compiler/tool/input_sdk/private/js_mirrors.dart

Issue 2698353003: unfork DDC's copy of most SDK libraries (Closed)
Patch Set: revert core_patch Created 3 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 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart._js_mirrors; 5 library dart._js_mirrors;
6 6
7 import 'dart:mirrors'; 7 import 'dart:mirrors';
8 import 'dart:_foreign_helper' show JS; 8 import 'dart:_foreign_helper' show JS;
9 import 'dart:_internal' as _internal; 9 import 'dart:_internal' as _internal;
10 10
11 String getName(Symbol symbol) => 11 String getName(Symbol symbol) {
12 _internal.Symbol.getName(symbol as _internal.Symbol); 12 if (symbol is _internal.PrivateSymbol) {
13 return _internal.PrivateSymbol.getName(symbol);
14 } else {
15 return _internal.Symbol.getName(symbol as _internal.Symbol);
16 }
17 }
13 18
14 Symbol getSymbol(name, library) => 19 Symbol getSymbol(name, library) =>
15 throw new UnimplementedError("MirrorSystem.getSymbol unimplemented"); 20 throw new UnimplementedError("MirrorSystem.getSymbol unimplemented");
16 21
17 final currentJsMirrorSystem = throw new UnimplementedError( 22 final currentJsMirrorSystem = throw new UnimplementedError(
18 "MirrorSystem.currentJsMirrorSystem unimplemented"); 23 "MirrorSystem.currentJsMirrorSystem unimplemented");
19 24
20 final _typeMirror = JS('', 'Symbol("_typeMirror")'); 25 final _typeMirror = JS('', 'Symbol("_typeMirror")');
21 26
22 InstanceMirror reflect(reflectee) { 27 InstanceMirror reflect(reflectee) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 return JS('', '#.definiteFunctionType(#, [])', _dart, type); 77 return JS('', '#.definiteFunctionType(#, [])', _dart, type);
73 } 78 }
74 79
75 dynamic _getMixins(type) { 80 dynamic _getMixins(type) {
76 return JS('', '#.getMixins(#, [])', _dart, type); 81 return JS('', '#.getMixins(#, [])', _dart, type);
77 } 82 }
78 83
79 typedef T _Lazy<T>(); 84 typedef T _Lazy<T>();
80 85
81 dynamic _getESSymbol(Symbol symbol) => 86 dynamic _getESSymbol(Symbol symbol) =>
82 _internal.Symbol.getNativeSymbol(symbol as _internal.Symbol); 87 _internal.PrivateSymbol.getNativeSymbol(symbol);
83 88
84 dynamic _getMember(Symbol symbol) { 89 dynamic _getMember(Symbol symbol) {
85 var privateSymbol = _getESSymbol(symbol); 90 var privateSymbol = _getESSymbol(symbol);
86 if (privateSymbol != null) { 91 if (privateSymbol != null) {
87 return privateSymbol; 92 return privateSymbol;
88 } 93 }
89 var name = getName(symbol); 94 var name = getName(symbol);
90 // TODO(jacobr): this code is duplicated in code_generator.dart 95 // TODO(jacobr): this code is duplicated in code_generator.dart
91 switch (name) { 96 switch (name) {
92 case '[]': 97 case '[]':
(...skipping 16 matching lines...) Expand all
109 String _getNameForESSymbol(member) { 114 String _getNameForESSymbol(member) {
110 // Convert private JS symbol "Symbol(_foo)" to string "_foo". 115 // Convert private JS symbol "Symbol(_foo)" to string "_foo".
111 assert(JS('bool', 'typeof # == "symbol"', member)); 116 assert(JS('bool', 'typeof # == "symbol"', member));
112 var str = member.toString(); 117 var str = member.toString();
113 assert(str.startsWith('Symbol(') && str.endsWith(')')); 118 assert(str.startsWith('Symbol(') && str.endsWith(')'));
114 return str.substring(7, str.length - 1); 119 return str.substring(7, str.length - 1);
115 } 120 }
116 121
117 Symbol _getSymbolForESSymbol(member) { 122 Symbol _getSymbolForESSymbol(member) {
118 var name = _getNameForESSymbol(member); 123 var name = _getNameForESSymbol(member);
119 return new _internal.Symbol.es6(name, member); 124 return new _internal.PrivateSymbol(name, member);
120 } 125 }
121 126
122 // The [member] must be either a string (public) or an ES6 symbol (private). 127 // The [member] must be either a string (public) or an ES6 symbol (private).
123 Symbol _getSymbolForMember(member) { 128 Symbol _getSymbolForMember(member) {
124 if (member is String) { 129 if (member is String) {
125 return new Symbol(member); 130 return new Symbol(member);
126 } else { 131 } else {
127 var name = _getNameForESSymbol(member); 132 var name = _getNameForESSymbol(member);
128 return new _internal.Symbol.es6(name, member); 133 return new _internal.PrivateSymbol(name, member);
129 } 134 }
130 } 135 }
131 136
132 Map<Symbol, dynamic> _toDartMap(data) { 137 Map<Symbol, dynamic> _toDartMap(data) {
133 if (data == null) return {}; 138 if (data == null) return {};
134 var map = new Map<Symbol, dynamic>(); 139 var map = new Map<Symbol, dynamic>();
135 // Note: we recorded a map from fields/methods to their type and metadata. 140 // Note: we recorded a map from fields/methods to their type and metadata.
136 // The key is a string name for public members but an ES6 symbol for private 141 // The key is a string name for public members but an ES6 symbol for private
137 // ones. That's works nicely for dynamic operations, but dart:mirrors expects 142 // ones. That's works nicely for dynamic operations, but dart:mirrors expects
138 // Dart symbols, so we convert here. 143 // Dart symbols, so we convert here.
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 var getters = _getGetters(unwrapped); 377 var getters = _getGetters(unwrapped);
373 getters.forEach((symbol, ft) { 378 getters.forEach((symbol, ft) {
374 var name = getName(symbol); 379 var name = getName(symbol);
375 _declarations[symbol] = 380 _declarations[symbol] =
376 new JsMethodMirror._instanceMethod(this, symbol, ft); 381 new JsMethodMirror._instanceMethod(this, symbol, ft);
377 }); 382 });
378 var setters = _getSetters(unwrapped); 383 var setters = _getSetters(unwrapped);
379 setters.forEach((symbol, ft) { 384 setters.forEach((symbol, ft) {
380 var name = getName(symbol) + '='; 385 var name = getName(symbol) + '=';
381 // Create a separate symbol for the setter. 386 // Create a separate symbol for the setter.
382 symbol = new _internal.Symbol.es6(name, _getESSymbol(symbol)); 387 symbol = new _internal.PrivateSymbol(name, _getESSymbol(symbol));
383 _declarations[symbol] = 388 _declarations[symbol] =
384 new JsMethodMirror._instanceMethod(this, symbol, ft); 389 new JsMethodMirror._instanceMethod(this, symbol, ft);
385 }); 390 });
386 var staticFields = _getStaticFields(unwrapped); 391 var staticFields = _getStaticFields(unwrapped);
387 staticFields.forEach((symbol, t) { 392 staticFields.forEach((symbol, t) {
388 var name = getName(symbol); 393 var name = getName(symbol);
389 var metadata = []; 394 var metadata = [];
390 if (t is List) { 395 if (t is List) {
391 metadata = t.skip(1).toList(); 396 metadata = t.skip(1).toList();
392 t = t[0]; 397 t = t[0];
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 var param = 654 var param =
650 new JsParameterMirror._(new Symbol(''), _wrap(type), metadata); 655 new JsParameterMirror._(new Symbol(''), _wrap(type), metadata);
651 params[i + args.length] = param; 656 params[i + args.length] = param;
652 } 657 }
653 658
654 _params = new List.unmodifiable(params); 659 _params = new List.unmodifiable(params);
655 } 660 }
656 661
657 String toString() => "MethodMirror on '$_name'"; 662 String toString() => "MethodMirror on '$_name'";
658 } 663 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/tool/input_sdk/private/js_helper.dart ('k') | pkg/dev_compiler/tool/input_sdk/private/linked_hash_map.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698