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

Unified Diff: pkg/dev_compiler/lib/js/common/dart_sdk.js

Issue 2587203002: Correct handling of cross-frame functions in ddc. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: pkg/dev_compiler/lib/js/common/dart_sdk.js
diff --git a/pkg/dev_compiler/lib/js/common/dart_sdk.js b/pkg/dev_compiler/lib/js/common/dart_sdk.js
index 5a032f355b54c07e02ae421c5badafde6770a44f..f2826b9dcea2f59677770b44a71e6a11b8191c72 100644
--- a/pkg/dev_compiler/lib/js/common/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/common/dart_sdk.js
@@ -34096,6 +34096,17 @@
return result;
}
};
+ core.Function.is = function is_Function(o) {
+ return typeof o == "function";
+ };
+ core.Function.as = function as_Function(o) {
+ if (typeof o == "function" || o == null) return o;
+ return dart.as(o, core.Function);
+ };
+ core.Function._check = function check_String(o) {
+ if (typeof o == "function" || o == null) return o;
+ return dart.check(o, core.Function);
+ };
dart.setSignature(core.Function, {
statics: () => ({
apply: dart.definiteFunctionType(dart.dynamic, [core.Function, core.List], [MapOfSymbol$dynamic()]),
@@ -52686,7 +52697,7 @@
}
if (args != null) args = core.List.from(args[dartx.map](dart.dynamic)(js._convertToJS));
let fn = this[_jsObject][method];
- if (!(fn instanceof Function)) {
+ if (typeof fn !== "function") {
dart.throw(new core.NoSuchMethodError(this[_jsObject], core.Symbol.new(core.String._check(method)), args, dart.map({}, core.Symbol, dart.dynamic)));
}
return js._convertToDart(fn.apply(this[_jsObject], args));
@@ -52888,7 +52899,7 @@
});
js.JsArray = JsArray();
js._isBrowserType = function(o) {
- return o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || o instanceof ImageData || o instanceof Node || window.TypedData && o instanceof TypedData || o instanceof Window;
+ return o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window;
};
dart.fn(js._isBrowserType, dynamicTobool$());
const _dartObj = Symbol('_dartObj');
@@ -52933,11 +52944,15 @@
} else if (js._DartObject.is(o) && dart.jsobject != dart.getReifiedType(o)) {
return o[_dartObj];
} else {
- return js._putIfAbsent(js._dartProxies, o, js._wrapToDart);
+ return js._wrapToDart(o);
}
};
dart.fn(js._convertToDart, dynamicToObject());
js._wrapToDart = function(o) {
+ return js.JsObject._check(js._putIfAbsent(js._dartProxies, o, js._wrapToDartHelper));
+ };
+ dart.fn(js._wrapToDart, dynamicToJsObject());
+ js._wrapToDartHelper = function(o) {
if (typeof o == "function") {
return new js.JsFunction._fromJs(o);
}
@@ -52946,7 +52961,7 @@
}
return new js.JsObject._fromJs(o);
};
- dart.fn(js._wrapToDart, dynamicToJsObject());
+ dart.fn(js._wrapToDartHelper, dynamicToJsObject());
dart.defineLazy(js, {
get _dartProxies() {
return new WeakMap();
@@ -59491,10 +59506,10 @@
return html$.Blob._check(html$.Blob._create_2(blobParts, bag));
}
static _create_1(parts) {
- return new Blob(parts);
+ return new window.Blob(parts);
}
static _create_2(parts, bag) {
- return new Blob(parts, bag);
+ return new window.Blob(parts, bag);
}
static _create_bag() {
return {};

Powered by Google App Engine
This is Rietveld 408576698