Index: tool/input_sdk/lib/js/dart2js/js_dart2js.dart |
diff --git a/tool/input_sdk/lib/js/dart2js/js_dart2js.dart b/tool/input_sdk/lib/js/dart2js/js_dart2js.dart |
index dcdb64463ef81ed5cccc8df6d6f777e6566c8ccf..08449bd25534f3fc41a05a851a1f618687327f81 100644 |
--- a/tool/input_sdk/lib/js/dart2js/js_dart2js.dart |
+++ b/tool/input_sdk/lib/js/dart2js/js_dart2js.dart |
@@ -93,7 +93,8 @@ import 'dart:_interceptors' as _interceptors show JSArray; |
import 'dart:_js_helper' show Primitives; |
import 'dart:_foreign_helper' show JS; |
-final JsObject context = _wrapToDart(JS('', 'dart.global')); |
+final _global = JS('', 'dart.global'); |
+final JsObject context = _wrapToDart(_global); |
/** |
* Proxies a JavaScript object to Dart. |
@@ -474,12 +475,13 @@ dynamic _wrapDartFunction(f) { |
// converts a Dart object to a reference to a native JS object |
// which might be a DartObject JS->Dart proxy |
-Object _convertToDart(o) { |
+Object _convertToDart(o, [bool isBrowserType(x)]) { |
+ if (isBrowserType == null) isBrowserType = _isBrowserType; |
if (JS('bool', '# == null', o) || |
JS('bool', 'typeof # == "string"', o) || |
JS('bool', 'typeof # == "number"', o) || |
JS('bool', 'typeof # == "boolean"', o) || |
- _isBrowserType(o)) { |
+ isBrowserType(o)) { |
return o; |
} else if (JS('bool', '# instanceof Date', o)) { |
var ms = JS('num', '#.getTime()', o); |
@@ -554,4 +556,4 @@ Function allowInteropCaptureThis(Function f) { |
_interopCaptureThisExpando[f] = ret; |
} |
return ret; |
-} |
+} |