diff --git a/React/Base/RCTBridgeDelegate.h b/React/Base/RCTBridgeDelegate.h index d8606c8d9..4c1a52f09 100644 --- a/React/Base/RCTBridgeDelegate.h +++ b/React/Base/RCTBridgeDelegate.h @@ -47,4 +47,10 @@ typedef void (^RCTSourceLoadBlock)(NSError *error, NSData *source); - (void)loadSourceForBridge:(RCTBridge *)bridge withBlock:(RCTSourceLoadBlock)loadCallback; +/** + * Indicates wheather Hot Loading is supported or not. + * Note this method will get removed soon, once we support Hot Loading on OSS. + */ +- (BOOL)isHotLoadingEnabled; + @end diff --git a/React/Executors/RCTJSCExecutor.m b/React/Executors/RCTJSCExecutor.m index b46886133..2adcdbb01 100644 --- a/React/Executors/RCTJSCExecutor.m +++ b/React/Executors/RCTJSCExecutor.m @@ -318,7 +318,10 @@ static void RCTInstallHotLoading(RCTBridge *bridge, RCTJSCExecutor *executor) }; RCTInstallJSCProfiler(_bridge, strongSelf->_context.ctx); - RCTInstallHotLoading(_bridge, strongSelf); + + if ([self.bridge.delegate respondsToSelector:@selector(isHotLoadingEnabled)] && [self.bridge.delegate isHotLoadingEnabled]) { + RCTInstallHotLoading(_bridge, strongSelf); + } for (NSString *event in @[RCTProfileDidStartProfiling, RCTProfileDidEndProfiling]) { [[NSNotificationCenter defaultCenter] addObserver:strongSelf diff --git a/packager/react-packager/src/Server/__tests__/Server-test.js b/packager/react-packager/src/Server/__tests__/Server-test.js index 2fdb5e738..107f27503 100644 --- a/packager/react-packager/src/Server/__tests__/Server-test.js +++ b/packager/react-packager/src/Server/__tests__/Server-test.js @@ -110,6 +110,7 @@ describe('processRequest', () => { entryFile: 'index.ios.js', inlineSourceMap: false, minify: false, + hot: false, runModule: true, sourceMapUrl: 'index.ios.includeRequire.map', dev: true, @@ -130,6 +131,7 @@ describe('processRequest', () => { entryFile: 'index.js', inlineSourceMap: false, minify: false, + hot: false, runModule: true, sourceMapUrl: 'index.map?platform=ios', dev: true, @@ -272,6 +274,7 @@ describe('processRequest', () => { entryFile: 'foo file', inlineSourceMap: false, minify: false, + hot: false, runModule: true, dev: true, platform: undefined, @@ -290,6 +293,7 @@ describe('processRequest', () => { entryFile: 'path/to/foo.js', inlineSourceMap: false, minify: false, + hot: false, runModule: false, sourceMapUrl: '/path/to/foo.map?dev=false&runModule=false', dev: false,