mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary:Making buck rebundle the worker script on every JS change is insanely slow. This allows the script to be downloaded for debug builds.
The plan is to couple this with an implementation of `require.resolve` which will automatically insert the correct packager network path in DEV builds and the correct local path in release builds.
e.g.
var worker = new Worker(require.resolve('WebWorkerSample_getPrimesBetween.js'));
Reviewed By: lexs
Differential Revision: D2939279
fb-gh-sync-id: fbf64bbf1df1649b44e4b98ac504d095c10104a6
shipit-source-id: fbf64bbf1df1649b44e4b98ac504d095c10104a6
53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include <functional>
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "MessageQueueThread.h"
|
|
|
|
#include <JavaScriptCore/JSContextRef.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
namespace ReactMarker {
|
|
using LogMarker = std::function<void(const std::string&)>;
|
|
extern LogMarker logMarker;
|
|
};
|
|
|
|
namespace MessageQueues {
|
|
using GetCurrentMessageQueueThread = std::function<std::unique_ptr<MessageQueueThread>()>;
|
|
extern GetCurrentMessageQueueThread getCurrentMessageQueueThread;
|
|
};
|
|
|
|
namespace WebWorkerUtil {
|
|
using WebWorkerQueueFactory = std::function<std::unique_ptr<MessageQueueThread>(int id, MessageQueueThread* ownerMessageQueue)>;
|
|
extern WebWorkerQueueFactory createWebWorkerThread;
|
|
|
|
using LoadScriptFromAssets = std::function<std::string(const std::string& assetName)>;
|
|
extern LoadScriptFromAssets loadScriptFromAssets;
|
|
|
|
using LoadScriptFromNetworkSync = std::function<std::string(const std::string& url, const std::string& tempfileName)>;
|
|
extern LoadScriptFromNetworkSync loadScriptFromNetworkSync;
|
|
};
|
|
|
|
namespace PerfLogging {
|
|
using InstallNativeHooks = std::function<void(JSGlobalContextRef)>;
|
|
extern InstallNativeHooks installNativeHooks;
|
|
};
|
|
|
|
namespace JSLogging {
|
|
using JSCNativeHook = JSValueRef (*) (
|
|
JSContextRef ctx,
|
|
JSObjectRef function,
|
|
JSObjectRef thisObject,
|
|
size_t argumentCount,
|
|
const JSValueRef arguments[], JSValueRef *exception);
|
|
extern JSCNativeHook nativeHook;
|
|
};
|
|
|
|
} }
|