OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 _interceptors; | 5 library _interceptors; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:_collection-dev'; | 8 import 'dart:_collection-dev'; |
9 import 'dart:_js_helper' show allMatchesInStringUnchecked, | 9 import 'dart:_js_helper' show allMatchesInStringUnchecked, |
10 Null, | 10 Null, |
(...skipping 13 matching lines...) Expand all Loading... |
24 stringReplaceAllUnchecked, | 24 stringReplaceAllUnchecked, |
25 stringReplaceFirstUnchecked, | 25 stringReplaceFirstUnchecked, |
26 TypeImpl; | 26 TypeImpl; |
27 import 'dart:_foreign_helper' show JS; | 27 import 'dart:_foreign_helper' show JS; |
28 | 28 |
29 part 'js_array.dart'; | 29 part 'js_array.dart'; |
30 part 'js_number.dart'; | 30 part 'js_number.dart'; |
31 part 'js_string.dart'; | 31 part 'js_string.dart'; |
32 | 32 |
33 /** | 33 /** |
34 * The interceptor class for all non-primitive objects. All its | |
35 * members are synthethized by the compiler's emitter. | |
36 */ | |
37 class ObjectInterceptor { | |
38 const ObjectInterceptor(); | |
39 } | |
40 | |
41 /** | |
42 * Get the interceptor for [object]. Called by the compiler when it needs | 34 * Get the interceptor for [object]. Called by the compiler when it needs |
43 * to emit a call to an intercepted method, that is a method that is | 35 * to emit a call to an intercepted method, that is a method that is |
44 * defined in an interceptor class. | 36 * defined in an interceptor class. |
45 */ | 37 */ |
46 getInterceptor(object) { | 38 getInterceptor(object) { |
47 // This is a magic method: the compiler does specialization of it | 39 // This is a magic method: the compiler does specialization of it |
48 // depending on the uses of intercepted methods and instantiated | 40 // depending on the uses of intercepted methods and instantiated |
49 // primitive types. | 41 // primitive types. |
50 } | 42 } |
51 | 43 |
52 /** | 44 /** |
| 45 * If [InvocationMirror.invokeOn] is being used, this variable |
| 46 * contains a JavaScript array with the names of methods that are |
| 47 * intercepted. |
| 48 */ |
| 49 var interceptedNames; |
| 50 |
| 51 /** |
53 * The interceptor class for tear-off static methods. Unlike | 52 * The interceptor class for tear-off static methods. Unlike |
54 * tear-off instance methods, tear-off static methods are just the JS | 53 * tear-off instance methods, tear-off static methods are just the JS |
55 * function, and methods inherited from Object must therefore be | 54 * function, and methods inherited from Object must therefore be |
56 * intercepted. | 55 * intercepted. |
57 */ | 56 */ |
58 class JSFunction implements Function { | 57 class JSFunction implements Function { |
59 const JSFunction(); | 58 const JSFunction(); |
60 String toString() => 'Closure'; | 59 String toString() => 'Closure'; |
61 } | 60 } |
62 | 61 |
(...skipping 18 matching lines...) Expand all Loading... |
81 */ | 80 */ |
82 class JSNull implements Null { | 81 class JSNull implements Null { |
83 const JSNull(); | 82 const JSNull(); |
84 | 83 |
85 // Note: if you change this, also change the function [S]. | 84 // Note: if you change this, also change the function [S]. |
86 String toString() => 'null'; | 85 String toString() => 'null'; |
87 | 86 |
88 int get hashCode => 0; | 87 int get hashCode => 0; |
89 Type get runtimeType => Null; | 88 Type get runtimeType => Null; |
90 } | 89 } |
OLD | NEW |