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

Side by Side Diff: sdk/lib/js/dartium/js_dartium.dart

Issue 1416043008: Hide implementation members in dart:html, dart:js and related libraries (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 /** 5 /**
6 * Support for interoperating with JavaScript. 6 * Support for interoperating with JavaScript.
7 * 7 *
8 * This library provides access to JavaScript objects from Dart, allowing 8 * This library provides access to JavaScript objects from Dart, allowing
9 * Dart code to get and set properties, and call methods of JavaScript objects 9 * Dart code to get and set properties, and call methods of JavaScript objects
10 * and invoke JavaScript functions. The library takes care of converting 10 * and invoke JavaScript functions. The library takes care of converting
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 import 'dart:nativewrappers'; 91 import 'dart:nativewrappers';
92 import 'dart:math' as math; 92 import 'dart:math' as math;
93 import 'dart:mirrors' as mirrors; 93 import 'dart:mirrors' as mirrors;
94 import 'dart:html' as html; 94 import 'dart:html' as html;
95 import 'dart:html_common' as html_common; 95 import 'dart:html_common' as html_common;
96 import 'dart:indexed_db' as indexed_db; 96 import 'dart:indexed_db' as indexed_db;
97 import 'dart:typed_data'; 97 import 'dart:typed_data';
98 98
99 // Pretend we are always in checked mode as we aren't interested in users 99 // Pretend we are always in checked mode as we aren't interested in users
100 // running Dartium code outside of checked mode. 100 // running Dartium code outside of checked mode.
101 @Deprecated("Internal Use Only")
101 final bool CHECK_JS_INVOCATIONS = true; 102 final bool CHECK_JS_INVOCATIONS = true;
102 103
103 final _allowedMethods = new Map<Symbol, _DeclarationSet>(); 104 final _allowedMethods = new Map<Symbol, _DeclarationSet>();
104 final _allowedGetters = new Map<Symbol, _DeclarationSet>(); 105 final _allowedGetters = new Map<Symbol, _DeclarationSet>();
105 final _allowedSetters = new Map<Symbol, _DeclarationSet>(); 106 final _allowedSetters = new Map<Symbol, _DeclarationSet>();
106 107
107 final _jsInterfaceTypes = new Set<mirrors.ClassMirror>(); 108 final _jsInterfaceTypes = new Set<mirrors.ClassMirror>();
109 @Deprecated("Internal Use Only")
108 Iterable<mirrors.ClassMirror> get jsInterfaceTypes => _jsInterfaceTypes; 110 Iterable<mirrors.ClassMirror> get jsInterfaceTypes => _jsInterfaceTypes;
109 111
110 /// A collection of methods where all methods have the same name. 112 /// A collection of methods where all methods have the same name.
111 /// This class is intended to optimize whether a specific invocation is 113 /// This class is intended to optimize whether a specific invocation is
112 /// appropritate for at least some of the methods in the collection. 114 /// appropritate for at least some of the methods in the collection.
113 class _DeclarationSet { 115 class _DeclarationSet {
114 _DeclarationSet() : _members = <mirrors.DeclarationMirror>[]; 116 _DeclarationSet() : _members = <mirrors.DeclarationMirror>[];
115 117
116 static bool _checkType(obj, mirrors.TypeMirror type) { 118 static bool _checkType(obj, mirrors.TypeMirror type) {
117 if (obj == null) return true; 119 if (obj == null) return true;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 _members.add(mirror); 202 _members.add(mirror);
201 } 203 }
202 204
203 final List<mirrors.DeclarationMirror> _members; 205 final List<mirrors.DeclarationMirror> _members;
204 } 206 }
205 207
206 /** 208 /**
207 * Temporary method that we hope to remove at some point. This method should 209 * Temporary method that we hope to remove at some point. This method should
208 * generally only be called by machine generated code. 210 * generally only be called by machine generated code.
209 */ 211 */
212 @Deprecated("Internal Use Only")
210 void registerJsInterfaces([List<Type> classes]) { 213 void registerJsInterfaces([List<Type> classes]) {
211 // This method is now obsolete in Dartium. 214 // This method is now obsolete in Dartium.
212 } 215 }
213 216
214 void _registerJsInterfaces(List<Type> classes) { 217 void _registerJsInterfaces(List<Type> classes) {
215 for (Type type in classes) { 218 for (Type type in classes) {
216 mirrors.ClassMirror typeMirror = mirrors.reflectType(type); 219 mirrors.ClassMirror typeMirror = mirrors.reflectType(type);
217 typeMirror.declarations.forEach((symbol, declaration) { 220 typeMirror.declarations.forEach((symbol, declaration) {
218 if (declaration is mirrors.MethodMirror || 221 if (declaration is mirrors.MethodMirror ||
219 declaration is mirrors.VariableMirror && !declaration.isStatic) { 222 declaration is mirrors.VariableMirror && !declaration.isStatic) {
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 l.sort(compare); 821 l.sort(compare);
819 return l; 822 return l;
820 } 823 }
821 // End of block of helper methods to emulate JavaScript Array methods on Dart Li st. 824 // End of block of helper methods to emulate JavaScript Array methods on Dart Li st.
822 825
823 /** 826 /**
824 * Can be called to provide a predictable point where no more JS interfaces can 827 * Can be called to provide a predictable point where no more JS interfaces can
825 * be added. Creating an instance of JsObject will also automatically trigger 828 * be added. Creating an instance of JsObject will also automatically trigger
826 * all JsObjects to be finalized. 829 * all JsObjects to be finalized.
827 */ 830 */
831 @Deprecated("Internal Use Only")
828 void finalizeJsInterfaces() { 832 void finalizeJsInterfaces() {
829 if (_finalized == true) { 833 if (_finalized == true) {
830 throw 'JSInterop class registration already finalized'; 834 throw 'JSInterop class registration already finalized';
831 } 835 }
832 _finalizeJsInterfaces(); 836 _finalizeJsInterfaces();
833 } 837 }
834 838
835 JsObject _cachedContext; 839 JsObject _cachedContext;
836 840
837 JsObject get _context native "Js_context_Callback"; 841 JsObject get _context native "Js_context_Callback";
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
1351 return f; 1355 return f;
1352 } else { 1356 } else {
1353 var ret = _interopCaptureThisExpando[f]; 1357 var ret = _interopCaptureThisExpando[f];
1354 if (ret == null) { 1358 if (ret == null) {
1355 ret = new JsFunction.withThis(f); 1359 ret = new JsFunction.withThis(f);
1356 _interopCaptureThisExpando[f] = ret; 1360 _interopCaptureThisExpando[f] = ret;
1357 } 1361 }
1358 return ret; 1362 return ret;
1359 } 1363 }
1360 } 1364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698