Fix postmessage to treat it's input as a serializable value

Change-Id: I11744735f5e6d6a5593e6ac3f00d87813577db7e
Reviewed-on: https://dart-review.googlesource.com/c/91141
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
Stephen Adams 2019-01-25 03:56:06 +00:00 committed by commit-bot@chromium.org
parent a851d4c370
commit 6bcb017c56
2 changed files with 32 additions and 2 deletions

View file

@ -26405,7 +26405,21 @@ class ServiceWorker extends EventTarget implements AbstractWorker {
final String state;
void postMessage(Object message, [List<Object> transfer]) native;
void postMessage(/*any*/ message, [List<Object> transfer]) {
if (transfer != null) {
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_1(message_1, transfer);
return;
}
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_2(message_1);
return;
}
@JSName('postMessage')
void _postMessage_1(message, List<Object> transfer) native;
@JSName('postMessage')
void _postMessage_2(message) native;
Stream<Event> get onError => errorEvent.forTarget(this);
}
@ -32274,7 +32288,21 @@ class Worker extends EventTarget implements AbstractWorker {
static bool get supported =>
JS('bool', '(typeof window.Worker != "undefined")');
void postMessage(Object message, [List<Object> transfer]) native;
void postMessage(/*any*/ message, [List<Object> transfer]) {
if (transfer != null) {
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_1(message_1, transfer);
return;
}
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_2(message_1);
return;
}
@JSName('postMessage')
void _postMessage_1(message, List<Object> transfer) native;
@JSName('postMessage')
void _postMessage_2(message) native;
void terminate() native;

View file

@ -922,6 +922,8 @@ dart2js_conversions = monitored.Dict('generator.dart2js_conversions', {
'any set MessagePort.postMessage': _serialize_SSV,
'any set Window.postMessage': _serialize_SSV,
'any set _DOMWindowCrossFrame.postMessage': _serialize_SSV,
'any set Worker.postMessage': _serialize_SSV,
'any set ServiceWorker.postMessage': _serialize_SSV,
'* get CustomEvent.detail':
Conversion('convertNativeToDart_SerializedScriptValue',