OLD | NEW |
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 /// This library defines the operations that define and manipulate Dart | 5 /// This library defines the operations that define and manipulate Dart |
6 /// classes. Included in this are: | 6 /// classes. Included in this are: |
7 /// - Generics | 7 /// - Generics |
8 /// - Class metadata | 8 /// - Class metadata |
9 /// - Extension methods | 9 /// - Extension methods |
10 /// | 10 /// |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 $_setFieldSignature($f, fields); | 369 $_setFieldSignature($f, fields); |
370 $_setGetterSignature($f, getters); | 370 $_setGetterSignature($f, getters); |
371 $_setSetterSignature($f, setters); | 371 $_setSetterSignature($f, setters); |
372 $_setStaticSignature($f, statics); | 372 $_setStaticSignature($f, statics); |
373 $_setStaticFieldSignature($f, staticFields); | 373 $_setStaticFieldSignature($f, staticFields); |
374 $_setStaticGetterSignature($f, staticGetters); | 374 $_setStaticGetterSignature($f, staticGetters); |
375 $_setStaticSetterSignature($f, staticSetters); | 375 $_setStaticSetterSignature($f, staticSetters); |
376 $_setStaticTypes($f, names); | 376 $_setStaticTypes($f, names); |
377 })()'''); | 377 })()'''); |
378 | 378 |
379 _hasSigEntry(type, sigF, name) => JS( | 379 bool _hasSigEntry(type, sigF, name) => JS( |
380 '', | 380 'bool', |
381 '''(() => { | 381 '''(() => { |
382 let sigObj = $type[$sigF]; | 382 let sigObj = $type[$sigF]; |
383 if (sigObj === void 0) return false; | 383 if (sigObj === void 0) return false; |
384 return $name in sigObj; | 384 return $name in sigObj; |
385 })()'''); | 385 })()'''); |
386 | 386 |
387 hasMethod(type, name) => _hasSigEntry(type, _methodSig, name); | 387 bool hasMethod(type, name) => _hasSigEntry(type, _methodSig, name); |
388 hasGetter(type, name) => _hasSigEntry(type, _getterSig, name); | 388 bool hasGetter(type, name) => _hasSigEntry(type, _getterSig, name); |
389 hasSetter(type, name) => _hasSigEntry(type, _setterSig, name); | 389 bool hasSetter(type, name) => _hasSigEntry(type, _setterSig, name); |
390 hasField(type, name) => _hasSigEntry(type, _fieldSig, name); | 390 bool hasField(type, name) => _hasSigEntry(type, _fieldSig, name); |
391 | 391 |
392 final _extensionType = JS('', 'Symbol("extensionType")'); | 392 final _extensionType = JS('', 'Symbol("extensionType")'); |
393 | 393 |
394 getExtensionType(obj) => JS('', '#[#]', obj, _extensionType); | 394 getExtensionType(obj) => JS('', '#[#]', obj, _extensionType); |
395 | 395 |
396 final dartx = JS('', 'dartx'); | 396 final dartx = JS('', 'dartx'); |
397 | 397 |
398 getExtensionSymbol(name) { | 398 getExtensionSymbol(name) { |
399 var sym = JS('', 'dartx[#]', name); | 399 var sym = JS('', 'dartx[#]', name); |
400 if (sym == null) { | 400 if (sym == null) { |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 | 570 |
571 defineEnumValues(enumClass, names) { | 571 defineEnumValues(enumClass, names) { |
572 var values = []; | 572 var values = []; |
573 for (var i = 0; i < JS('int', '#.length', names); i++) { | 573 for (var i = 0; i < JS('int', '#.length', names); i++) { |
574 var value = const_(JS('', 'new #.new(#)', enumClass, i)); | 574 var value = const_(JS('', 'new #.new(#)', enumClass, i)); |
575 JS('', '#.push(#)', values, value); | 575 JS('', '#.push(#)', values, value); |
576 defineValue(enumClass, JS('', '#[#]', names, i), value); | 576 defineValue(enumClass, JS('', '#[#]', names, i), value); |
577 } | 577 } |
578 JS('', '#.values = #', enumClass, constList(values, enumClass)); | 578 JS('', '#.values = #', enumClass, constList(values, enumClass)); |
579 } | 579 } |
OLD | NEW |