mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
8db35d492b
Summary: To make the chrome debugger environment consisten with the JSC executer environment, where there is no `window.document`, make the chrome debugger run the javascript inside a web worker. This fixes #1473 Closes https://github.com/facebook/react-native/pull/1632 Reviewed By: @martinbigio Differential Revision: D2471710 Pulled By: @vjeux
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
/* global self, importScripts, postMessage, onmessage: true */
|
|
/* eslint no-unused-vars: 0 */
|
|
'use strict';
|
|
|
|
var messageHandlers = {
|
|
'executeApplicationScript': function(message, sendReply) {
|
|
for (var key in message.inject) {
|
|
self[key] = JSON.parse(message.inject[key]);
|
|
}
|
|
importScripts(message.url);
|
|
sendReply();
|
|
},
|
|
'executeJSCall': function(message, sendReply) {
|
|
var returnValue = [[], [], [], [], []];
|
|
try {
|
|
if (require) {
|
|
returnValue = require(message.moduleName)[message.moduleMethod].apply(null, message.arguments);
|
|
}
|
|
} finally {
|
|
sendReply(JSON.stringify(returnValue));
|
|
}
|
|
}
|
|
};
|
|
|
|
onmessage = function(message) {
|
|
var object = message.data;
|
|
|
|
var sendReply = function(result) {
|
|
postMessage({replyID: object.id, result: result});
|
|
};
|
|
|
|
var handler = messageHandlers[object.method];
|
|
if (handler) {
|
|
handler(object, sendReply);
|
|
} else {
|
|
console.warn('Unknown method: ' + object.method);
|
|
}
|
|
};
|