Pieter De Baets
afbab66a44
Define rn_xplat_cxx_library for OSS builds
...
Reviewed By: bestander
Differential Revision: D5044673
fbshipit-source-id: 41c9fe4b2ae128eed6f299dd8ea9dbfc4ca75917
2017-05-12 02:45:19 -07:00
Pieter De Baets
103f4ee01f
Move JSBigString its own cxxreact target
...
Reviewed By: amnn
Differential Revision: D5020584
fbshipit-source-id: 9ba21c0231c3bb77973620669727205231a0b7a8
2017-05-11 09:01:30 -07:00
Pieter De Baets
19e6557d2e
Cleanup cxxreact BUCK file
...
Reviewed By: mzlee
Differential Revision: D5020563
fbshipit-source-id: 286a2d1c44623b5b9fd923ef8684d263500791b3
2017-05-11 05:04:02 -07:00
Ben Nham
65f22a5190
log script name with bundle loading perf event
...
Reviewed By: javache
Differential Revision: D5010638
fbshipit-source-id: 2e139201a8374245fa1dedc4f11a716dcf700fd7
2017-05-10 04:09:19 -07:00
Theo Yaung
ac74d2a38b
Refactor interfaces
...
Reviewed By: johnislarry
Differential Revision: D4844786
fbshipit-source-id: f348b8d5078643636343f6ea099b200f519fbc40
2017-05-02 21:31:41 -07:00
Pieter De Baets
34bc6bd2ae
Drop support for webworkers
...
Reviewed By: AaaChiuuu
Differential Revision: D4916449
fbshipit-source-id: a447233d3b7cfee98db2ce00f1c0505d513e2429
2017-04-25 05:37:54 -07:00
Alexey Lang
1bc9d448f5
Port perf metrics used in RCTBatchedBridge
...
Reviewed By: javache
Differential Revision: D4938279
fbshipit-source-id: c927261ff96c2eb07b7303ae96aae7600f2947f1
2017-04-25 02:32:25 -07:00
Pieter De Baets
f3dfd616f4
Allow lazy Cxx modules to not initialize
...
Reviewed By: mhorowitz
Differential Revision: D4851596
fbshipit-source-id: cf5f5c51b9aaa0da96f7ab6fba1277b72c988400
2017-04-08 15:18:08 -07:00
Pieter De Baets
b2647ea335
Allow ModuleRegistry initialization to complete lazily
...
Reviewed By: mhorowitz
Differential Revision: D4794794
fbshipit-source-id: f3b7a5d02587b4cd4e214aa6b0368a0d214fb63f
2017-04-07 09:30:33 -07:00
Martin Kralik
5f37483466
Revert D4840716: Refactor interfaces
...
Differential Revision: D4840716
fbshipit-source-id: 1b6a6050d78ccbbd3c817621df1c1c989594fdb1
2017-04-06 06:03:10 -07:00
Theo Yaung
fd99330b6c
Refactor interfaces
...
Reviewed By: johnislarry
Differential Revision: D4840716
fbshipit-source-id: 1a82437c81ce5b767efd39ab0716998bab4f5363
2017-04-06 00:04:06 -07:00
Pieter De Baets
c128612c5c
A proxy so a singleton CxxModule can be shared by multiple ModuleRegistry instances.
...
Reviewed By: mhorowitz
Differential Revision: D4814438
fbshipit-source-id: db6cdd9e948643bb24a443bd45b7b0843a0a86c2
2017-04-04 10:36:19 -07:00
Pieter De Baets
ff7fb6efda
Allow overrides of NativeModules
...
Reviewed By: mhorowitz
Differential Revision: D4764126
fbshipit-source-id: 036f848f8b3debbb3cc4a34fc99044304615760e
2017-03-24 05:04:05 -07:00
Pieter De Baets
9d377e98a0
Fix warnings in React.xcodeproj
...
Summary:
Various fixes of xcode projects and cleaning up some warnings
Closes https://github.com/facebook/react-native/pull/13109
Differential Revision: D4762652
Pulled By: lacker
fbshipit-source-id: b452976a58962439de4adecc8e703264af40cb38
2017-03-23 11:36:17 -07:00
Pieter De Baets
314ec87269
Remove unused CxxMessageQueue
...
Differential Revision: D4713064
fbshipit-source-id: 511b782279b89076228f00290e78ed155e2e723e
2017-03-21 12:46:27 -07:00
Marc Horowitz
6dc3a83e88
Don't load native module support as part of the initial CS bundle
...
Reviewed By: javache
Differential Revision: D4720386
fbshipit-source-id: cd8b6137aaff2d907adf089060bf7d356cd2f437
2017-03-20 13:25:33 -07:00
Adam Ernst
47d2cfeac5
Whitelist some stuff in React
...
Reviewed By: mzlee
Differential Revision: D4731968
fbshipit-source-id: 1d1ae12a50beef4cd024a467427ec3b6cd446f4c
2017-03-19 14:01:09 -07:00
Pieter De Baets
99d73c8927
Move FBReactJSExecutor to Instance
...
Reviewed By: mhorowitz
Differential Revision: D4589940
fbshipit-source-id: e3f0c374e78f77e54cede5c617414e41844f0f4d
2017-03-17 07:08:14 -07:00
Pieter De Baets
73e81b87d3
Remove unused onNativeException delegate method
...
Reviewed By: mhorowitz
Differential Revision: D4597914
fbshipit-source-id: 82a109d1e6d8b0c93380840c22ec74dc75ab1a45
2017-03-17 07:08:14 -07:00
Pieter De Baets
d7b37c4050
Remove JsToNativeBridge's nativeQueue
...
Reviewed By: mhorowitz
Differential Revision: D4589737
fbshipit-source-id: 3b2730417d99c4f98cfaad386bc50328f2551592
2017-03-17 07:08:14 -07:00
Andy Street
c8d922b467
BREAKING: Only call batchDidComplete when there were actually native calls dispatched
...
Summary: This is breaking because it affects the contract for onBatchComplete, but modules really shouldn't (and probably aren't) depending on it being called without any actual native module method calls having happened.
Reviewed By: javache
Differential Revision: D4715656
fbshipit-source-id: 53ddd4a26c9949de86f5111d214b3e5002ca2e94
2017-03-16 07:45:38 -07:00
Adam Ernst
ca6043292a
@build-break codemod ios_library to fb_apple_library
...
Reviewed By: swolchok
fbshipit-source-id: cdbb5195b3c279121c79e237cc2c7275447aa625
2017-03-15 07:38:02 -07:00
Marc Horowitz
e622d51e20
Support ModuleHolder-based lazy init of C++ modules with C++ bridge on android
...
Reviewed By: AaaChiuuu
Differential Revision: D4614479
fbshipit-source-id: 109ac34b8688f0113675e4a4479d1ddcc6169ed4
2017-03-14 15:35:01 -07:00
Marc Horowitz
7e4b8ff000
Support passing native modules to JSContext
...
Reviewed By: amnn
Differential Revision: D4561036
fbshipit-source-id: b096a222103e895b14cba1ec5b2bb6e72dd72c37
2017-03-14 15:35:01 -07:00
Theo Yaung
3e528b1014
Remove Inspector Logic (cannot work on iOS / System JSC)
...
Reviewed By: javache
Differential Revision: D4620530
fbshipit-source-id: 52abc6178b1ad1b52ba1b1825702c9c254a04520
2017-03-14 11:45:38 -07:00
Marc Horowitz
6bce498bbc
Tweak CxxMessageQueue to work with unique_ptr
...
Differential Revision: D4560164
fbshipit-source-id: 8975157f5a14d5849365a9e35922a02ac6dc185b
2017-02-28 14:15:56 -08:00
Ashok Menon
bf429f03a9
Get rid of code gated behind `JSC_HAS_EXTERNAL_CACHE`
...
Reviewed By: bnham
Differential Revision: D4608754
fbshipit-source-id: 9214c4d20720e5aa1cd65381a4837ff06943376e
2017-02-27 14:04:57 -08:00
Michael Bolin
48cb932c6e
Apply auto-formatter for BUCK files in fbandroid.
...
fbshipit-source-id: 278ce6f67f5df830b2218e3aca69be103d3c56a6
2017-02-27 14:04:56 -08:00
Ashok Menon
a0f2ca8668
Migrating over CompiledSourceCode to new SourceProvider APIs.
...
Reviewed By: michalgr
Differential Revision: D4598042
fbshipit-source-id: ac6460c9156cc72e7925edac675a0b6ed57196f5
2017-02-23 11:45:57 -08:00
Charles Dick
a151fce1ca
refactor jscMemoryMetrics to use HeapStats
...
Reviewed By: amnn
Differential Revision: D4558963
fbshipit-source-id: 8b729c6ce288d30b8d069be34f9db7572d8b3ec4
2017-02-22 11:16:13 -08:00
Pieter De Baets
ebe3355de7
Create NSDataBigString
...
Reviewed By: bnham
Differential Revision: D4559734
fbshipit-source-id: 6766093524ae79ed2a41285d33eb2207993a7d0e
2017-02-20 05:00:58 -08:00
Ashok Menon
1635c02e92
Simplifying Struct definition.
...
Summary:
Since we are reading from a file, we should make sure this struct is packed, just in case we change it down the line and the compiler decides it might want to introduce padding, we're now protected against that.
There was also a discussion about the fact that people might use `ptr += sizeof(BundleHeader)` as an idiom in their code, which would currently be incorrect, if padding was introduced at the end of the file. Actually, it remains incorrect to do that now, because a RAM bundle header is a different size to a BC Bundle header. If people are properly testing their code, they should spot this pretty quickly, because it will always be an incorrect thing to do with a RAM bundle, so this isn't as bad as previously thought: where the code only succeeds when the compiler deigns to not pad the struct at the end.
This diff also cleans up how headers are initialised. `BundleHeader` has a constructor that explicitly zero-initialises it so we can rely on the default initializer to do the right thing now.
Reviewed By: mhorowitz
Differential Revision: D4572032
fbshipit-source-id: 7dc50cfa9438dfdfb9f842dc39d8f15334813c63
2017-02-20 04:30:19 -08:00
Mathieu Baudet
4a893ee071
remove unused includes in fbobjc/Libraries
...
Reviewed By: swolchok
Differential Revision: D4507573
fbshipit-source-id: 7fc6df52bc37c39698c7897be567758469417218
2017-02-19 18:33:49 -08:00
Ashok Menon
3148cc09ae
Fix CI runs
...
Summary: I broke Circle CI builds by moving a file, so I am updating the OSS build setup with details of the move. Whilst I was testing the change, I noticed that the UI Explorer build was also already broken, so this diff also changes some of its configuration to make it build again.
Reviewed By: javache
Differential Revision: D4579137
fbshipit-source-id: 4cbb1ef148075280b991cbc5bb47bf96ec3d543a
2017-02-17 09:17:19 -08:00
Alexey Lang
ba029becbe
Support QuickPerformanceLogger.js in CxxBridge
...
Reviewed By: javache
Differential Revision: D4573567
fbshipit-source-id: 3ef9da38fb178cf4c1400b4a991a9e85f3ec3755
2017-02-17 06:00:54 -08:00
Ashok Menon
14dc219810
Deleting Optimized Bundle!
...
Reviewed By: javache
Differential Revision: D4566164
fbshipit-source-id: 1fbd3dd04f24399e93e3c6ec58956e6e18f1683f
2017-02-16 13:30:55 -08:00
Pieter De Baets
53b387638e
Move JSBigString to its own header
...
Reviewed By: mhorowitz
Differential Revision: D4551162
fbshipit-source-id: 2374e05e60942211e50af86ed42eb194e5e82bbe
2017-02-16 06:59:30 -08:00
Sean Kinsey
c38d56d9db
Expose the bridge instance to CxxModule via a weak_ptr
...
Summary:
In order for `CxxModule` modules to be able to do things like emit events, we need to expose the bridge instance.
To allow classes derived from `CxxModule` in other projects to include `<cxxreact/Instance.h> I also needed to convert all the header includes to non-relative ones.
Reviewed By: javache
Differential Revision: D4564145
fbshipit-source-id: a5bc28dd9b40e2b141af9e867105c56083fbdcdc
2017-02-15 10:04:17 -08:00
Pieter De Baets
61785ee00c
Support BC in JSCExecutor on iOS
...
Reviewed By: amnn
Differential Revision: D4558676
fbshipit-source-id: 1ec2b1a5a8df08074ba06162ab2585f02d1d214b
2017-02-15 07:14:57 -08:00
Pieter De Baets
8987d86718
Fix error handling for nested exceptions
...
Reviewed By: mhorowitz
Differential Revision: D4551110
fbshipit-source-id: e593c1ef0dea27e95a387bcde6250aeb22d2e9cc
2017-02-15 06:15:11 -08:00
Michael Bolin
f294f61eeb
Replace top-level `elif` with `if` in BUCK files.
...
Reviewed By: mzlee
Differential Revision: D4550165
fbshipit-source-id: 65d636c2e9e273bf45e093fe2c07aec18659e733
2017-02-13 22:32:37 -08:00
Pieter De Baets
4d2512aef9
Replace MethodCallResult with folly::Optional
...
Reviewed By: AaaChiuuu
Differential Revision: D4481987
fbshipit-source-id: 945dd671eb2482f3c6b626192aa2181c5bfd906f
2017-02-02 05:13:33 -08:00
Marc Horowitz
5bc7e3934b
make JSCExecutor compile on iOS without android hacks
...
Reviewed By: javache
Differential Revision: D4434041
fbshipit-source-id: 88439384b1471ea5bd96d7cc39e681ddd3959243
2017-02-01 14:14:32 -08:00
Marc Horowitz
ad549c067a
small fixes to ReactCommon
...
Summary: unneeded or overly generic header files, stuff like that.
Reviewed By: javache
Differential Revision: D4434029
fbshipit-source-id: f25c702e7fc8d8debbd865cf3822696bf9b61c81
2017-02-01 14:14:32 -08:00
Pieter De Baets
f8c72f5441
Support invoking and returning arbitrary types from Java sync hooks
...
Reviewed By: mhorowitz
Differential Revision: D4409900
fbshipit-source-id: 347e33c442b32f64355d343308c218c15cf5a70f
2017-01-31 05:28:35 -08:00
Pieter De Baets
919e49a8b8
Pass expanded folly::dynamic as argument to sync nativeHook
...
Reviewed By: mhorowitz
Differential Revision: D4409865
fbshipit-source-id: f99e02e36bf691fa5b4a5affce1fa4fd4cf321a6
2017-01-30 06:43:48 -08:00
Pieter De Baets
a407ff94ee
Add option to start sampling profiler on app launch
...
Reviewed By: mhorowitz
Differential Revision: D4415989
fbshipit-source-id: 30704c2b618656cb7cc0ccdf87dec315b30b62f3
2017-01-25 14:43:30 -08:00
Pieter De Baets
e97ffc469c
Use NoAutomaticPrototype everywhere
...
Reviewed By: michalgr
Differential Revision: D4462794
fbshipit-source-id: 53585741c1d35ca31e3429f2de56455ea5dea902
2017-01-25 11:43:30 -08:00
Ashok Menon
76c4faee5e
CatalystInstanceImpl.setSourceURL
...
Reviewed By: javache
Differential Revision: D4422416
fbshipit-source-id: bc49485ac64064909f32375b6b8360a0a505975b
2017-01-18 08:58:41 -08:00
Ashok Menon
154e183344
Fixing RN Debugger
...
Reviewed By: cwdick, javache
Differential Revision: D4409257
fbshipit-source-id: 062c798d1a1c9ad90884599ed262412c1dd51359
2017-01-12 16:28:36 -08:00
Dan Caspi
ad0493c6c2
Fixing a crash caused by D4393955
...
Reviewed By: javache
Differential Revision: D4403858
fbshipit-source-id: c930aa108d27c1bd1b36364530d2953bcd4664ad
2017-01-11 09:43:34 -08:00
Stephen Girdlestone
a0dd54b4d7
Adding method for JSCreateSourceCodeFromFile.
...
Reviewed By: amnn
Differential Revision: D4365790
fbshipit-source-id: b62ee9c7d3fa3f89c22a10a6fde21cd9c30fceb2
2017-01-11 06:13:28 -08:00
Dan Caspi
b50f55026a
Adding support in the new RN bridge on iOS
...
Differential Revision: D4393955
fbshipit-source-id: e5f3fb6773908678773a5dd4fdea568bcc200336
2017-01-10 11:28:44 -08:00
Ashok Menon
da428d6c3d
Exposing Recoverable Errors
...
Differential Revision: D4383792
fbshipit-source-id: e6d0f57fcaacf242e95bfcf589a4fa840c317fe5
2017-01-10 07:13:40 -08:00
Ashok Menon
24f3add010
Use JSExecutor's file-based Loading API in NativeToJsBridge and Instance
...
Reviewed By: javache
Differential Revision: D4320773
fbshipit-source-id: fa46728ba0d45818737b32952efbfae7bc8ef9f1
2017-01-10 07:13:40 -08:00
Ashok Menon
8819bef56b
Getting rid of File descriptor based loading APIs
...
Reviewed By: javache
Differential Revision: D4333725
fbshipit-source-id: ba8591c7380e8eb90660a912f6fc86fc3d2d4774
2017-01-10 07:13:40 -08:00
Ashok Menon
6ca6b4988a
Propagate Load Errors through JSExecutor API
...
Reviewed By: mhorowitz
Differential Revision: D4315204
fbshipit-source-id: ae282e0a0398a602dd790de3a2b1adb5fdc1f50c
2016-12-17 04:58:31 -08:00
Ashok Menon
fa082796a5
Make file backed strings dup the provided file descriptor.
...
Reviewed By: mhorowitz
Differential Revision: D4326645
fbshipit-source-id: 2741f1fead4f42ae76787f8a70c1e787445b827d
2016-12-16 06:13:40 -08:00
Ashok Menon
fb5678e33a
Generalising JSCompiledSourceError to JSLoadSourceError
...
Reviewed By: javache
Differential Revision: D4312888
fbshipit-source-id: de38066247f52eeb64efa48807882b96e3737d0e
2016-12-12 08:43:43 -08:00
Ashok Menon
f3dbf3ea89
Removing default parameters to functions in `JSBase.h`
...
Differential Revision: D4309440
fbshipit-source-id: f4f795d5736c6d6e5297e2773538df66139e9b84
2016-12-10 05:58:31 -08:00
Michał Gregorczyk
46919095aa
Simplify bundle loading a little bit.
...
Reviewed By: amnn
Differential Revision: D4306559
fbshipit-source-id: 9733c508aa5a905251e96855794a59ef79d61cfa
2016-12-09 17:58:32 -08:00
Michael Lee
f99f10c7ab
Move gmock to shared xplat
...
Reviewed By: capickett
Differential Revision: D4017736
fbshipit-source-id: 46d9b936fe210040835e4b7222053c1520cb7318
2016-12-09 11:13:33 -08:00
Ashok Menon
30213757d9
Making CompiledSourceError a C enum, to keep `JSBase.h` as a C header
...
Reviewed By: javache
Differential Revision: D4299281
fbshipit-source-id: 14cdc6d4502a70300919dc6a98a5f274076134c7
2016-12-08 16:28:27 -08:00
Ashok Menon
624104fd0c
Listen to Compiled Source Errors in JSCExecutor fallback code.
...
Reviewed By: javache
Differential Revision: D4284537
fbshipit-source-id: 247717ef55fb6bc0a34a01626c790bd23fd18598
2016-12-08 05:13:40 -08:00
David Aurelio
f9f32eb426
Load Indexed RAM format on android
...
Reviewed By: javache
Differential Revision: D4268243
fbshipit-source-id: fc969cfc69810d0477c926ffc79c23584fcbd7eb
2016-12-04 16:13:30 -08:00
David Aurelio
b1a23914fa
JSIndexedRAMBundle: Don't read null bytes for scripts
...
Summary:
`JSIndexedRAMBundle` used to read scripts including the terminating null bytes. That worked on iOS, but not on Android, where we have an ascii-only optimization.
This changes that behavior to only read the actual script data excluding the terminal null.
Reviewed By: javache
Differential Revision: D4265374
fbshipit-source-id: 7e6f943666aee610d79939cef09b103305803c69
2016-12-03 02:28:37 -08:00
Pieter De Baets
0e6895f270
Fix typo
...
Reviewed By: amnn
Differential Revision: D4258150
fbshipit-source-id: d41c5426b801d32db6099cf8b29596689f369ba6
2016-12-01 06:58:31 -08:00
Lukas Piatkowski
bd524bd6e8
BREAKING: Change the toValue in JSCExecutor to ValueEncoder<T>::toValue
...
Summary:
The C++ standard requires that when a function is used in a template it's prototype needs to be defined not only before the template specialization, but also before the template itself.
Because of that one needs to (in certain compilers) be aware of the proper order of includes so that the function prototype is defined before the JSCExecutor.h is included.
As a workaround the toValue might be written as a template (ValueEncoder<T>::toValue) defined in JSCExecutor.h instead of being an non-existing symbol.
Thanks to that the JSCExecutor.h does not have to be included before the specialization of the ValueEncoder template.
Reviewed By: mhorowitz
Differential Revision: D4182724
fbshipit-source-id: 9bdf239ae66ef7a7d2c82daf7db5926472687bde
2016-11-24 09:28:29 -08:00
Pieter De Baets
f2a46b17d4
Replace RCTJSCWrapper with JSCWrapper from ReactCommon
...
Reviewed By: mhorowitz
Differential Revision: D4204516
fbshipit-source-id: 6bcb122daf2848035dfae404ee7a2e9aca0f8087
2016-11-23 11:43:48 -08:00
David Aurelio
5db7484e8d
Move `ScriptTag` and `RCTJSModulesUnbundle` to `cxxreact`
...
Reviewed By: javache
Differential Revision: D4213662
fbshipit-source-id: fc2ec9717c24fe77bb022a48777049f88173ebeb
2016-11-23 06:43:50 -08:00
Pieter De Baets
cb3e575deb
Allow bridge delegate to specify whether to use custom JSC wrapper
...
Reviewed By: mhorowitz
Differential Revision: D4197657
fbshipit-source-id: 09e050f802b41c9a7016456c25381018b2123553
2016-11-23 03:58:41 -08:00
Pieter De Baets
3f50a887d9
Move JSC API usage in ReactCommon to our wrapper methods
...
Reviewed By: bnham
Differential Revision: D4197374
fbshipit-source-id: 107a129cff35dddfe06104b607441ad412f83d90
2016-11-22 06:13:33 -08:00
Pieter De Baets
e541d9b108
Define wrapper versions of all JSC methods
...
Reviewed By: bnham
Differential Revision: D4197369
fbshipit-source-id: 53869fe1b56010c8a5330025d06ef557369e4957
2016-11-22 06:13:33 -08:00
Michał Gregorczyk
2ca507bf9e
Remove supported platforms from JSC and all the things that depends on it
...
Reviewed By: bnham
Differential Revision: D4213580
fbshipit-source-id: 3830c15b0097030a4e4611aac814b12e1d6ae696
2016-11-21 16:43:31 -08:00
Pieter De Baets
2a04569926
Fix usage of old String constructor
...
Reviewed By: amnn
Differential Revision: D4204575
fbshipit-source-id: ea0309ec9bf2c8a4c480188efb00408fcc399e2e
2016-11-18 07:28:24 -08:00
Pieter De Baets
20514e3482
Add JSContextRef param to String constructor
...
Reviewed By: bnham
Differential Revision: D4197300
fbshipit-source-id: 306ffc85e3ced24047b68499f7cdf5e2d31fc052
2016-11-18 06:28:48 -08:00
Pieter De Baets
674d86cdcb
Add some more helper methods to Value
...
Reviewed By: mhorowitz
Differential Revision: D4197278
fbshipit-source-id: 9a538ff2747d32a54d42627a9f78e4a348dce639
2016-11-18 06:28:48 -08:00
Ashok Menon
9e00a42fd7
Experimental App Bundle API
...
Reviewed By: michalgr
Differential Revision: D4198629
fbshipit-source-id: b96a4b3ad3e5ab6b4cb8892442c6077edf7058a3
2016-11-18 05:13:31 -08:00
Ashok Menon
2de1c3507a
Introducing `JSBigFileString`
...
Reviewed By: michalgr
Differential Revision: D4189896
fbshipit-source-id: 0f3cebcd7e76d5c763c29ebc1119ae24b643e5ad
2016-11-16 15:13:39 -08:00
Ashok Menon
79fa6d41a1
Rename JSBigMmapString -> JSBigOptimizedBundleString
...
Summary:
`JSBigMmapString` needs to know too much about the details of the "optimized bundle" format. In honour of this fact, I'm renaming it to `JSBigOptimizedBundleString`. In a following diff, I will introduce a new class just for File-backed Strings, whose only responsibility is dealing with an mmaped region.
This diff already pulls in some fixes for formatting reference and pointer declarations from the linter.
Reviewed By: michalgr
Differential Revision: D4189391
fbshipit-source-id: b376c2a8d9ae5b83575da8457e607bbbfc648ebd
2016-11-16 15:13:39 -08:00
Ashok Menon
89d81b34db
Use folly for error checking
...
Summary: Small refactor, making error checking clearer.
Reviewed By: lexs
Differential Revision: D4189090
fbshipit-source-id: f3a24eacfe6dd154d29662f510ce19dbe55f89a6
2016-11-16 15:13:39 -08:00
Ashok Menon
f22dfa3efb
Make Bytecode Header errors non-fatal
...
Reviewed By: michalgr
Differential Revision: D4182575
fbshipit-source-id: 1e7c229bb6d0bdbfdfc01e93af53441ba2cba9f9
2016-11-16 15:13:39 -08:00
Pieter De Baets
96cf9bb0c0
Support null messageQueueThread in JSCExecutor
...
Reviewed By: michalgr
Differential Revision: D4119253
fbshipit-source-id: 2956434451bf4e649cfe4c0ee0a9b7339a5422a3
2016-11-02 14:28:36 -07:00
Alexander Blom
156e5d9837
Add on-device JSC inspector
...
Summary:
Introduces the inspector library supporting the Chrome Debugging Protocol for JavaScriptCore. Eventually this will mean that it is possible to attach
the Chrome inspector directly to the JSC instance running on the device. This library doesn't define the actual transport but leaves that up to the platform
layer.
The main entry point (and the only exported header) is `Inspector.h`.
This diff only introduces the basics supporting the `Schema` and `Inspector` domains meaning it doesn't have any features yet. These will come in following
diffs.
Reviewed By: michalgr
Differential Revision: D4021490
fbshipit-source-id: 517fd9033051c11ba97d312b16382445ae85d3f3
2016-11-02 12:29:14 -07:00
Pieter De Baets
4082a54649
Don't mask exceptions generated from loadModule
...
Reviewed By: davidaurelio
Differential Revision: D4112447
fbshipit-source-id: e9b3a5cefb166fe00c04b6126c9878e71f1413ec
2016-11-01 16:13:33 -07:00
Alexander Blom
ddb8cb7cf0
Move JSCHelpers.h and Value.h into separate package
...
Reviewed By: javache
Differential Revision: D3950748
fbshipit-source-id: 6315ea07f3217b485aeb4374b5f6e36333957848
2016-11-01 11:44:10 -07:00
Ben Nham
c089761f9b
Use JSCExecutor to manage loading js script in JSContext
...
Reviewed By: jaegs
Differential Revision: D4021624
fbshipit-source-id: 8e46052ad246e842a88715d55059a233196a4a6b
2016-10-31 15:13:49 -07:00
Giuseppe Ottaviano
dc02907039
Fix a folly::dynamic deprecated pattern
...
Reviewed By: javache
Differential Revision: D4075622
fbshipit-source-id: 4a6b6c4068d762dce2b1535bfd9630e185f5489f
2016-10-26 09:43:56 -07:00
Nikhilesh Sigatapu
c67225818d
Add a way to access the underlying JavaScriptCore context
...
Summary:
**Motivation**
I'm working on a project that uses React Native and needs to add direct synchronous bindings to native stuff through the JavaScriptCore C API. This is because it's performance-sensitive and would benefit from the quickest JS->C path. It does this using cross-platform C++ code that works on both iOS and Android. Most of the infrastructure for getting access to the JSC context is already in React Native actually, just had to add a few more things.
(lexs you mentioned to tag you in this pull request)
**Test plan**
Modify the JavaScriptCore context through the `JSContextRef` returned (eg. add an object at global scope) and verify that it exists in JavaScript.
Closes https://github.com/facebook/react-native/pull/10399
Differential Revision: D4080945
Pulled By: lexs
fbshipit-source-id: 6659b7a01e09fd84475adde183c1d3aca2d4cf09
2016-10-26 03:43:44 -07:00
Scott Wolchok
3f472e0bfa
Fix cxxreact build error with -Wmissing-prototypes
...
Differential Revision: D4022143
fbshipit-source-id: 6afbd29a030ff51915cfb552f74737e9146b2ffd
2016-10-14 13:28:36 -07:00
Pieter De Baets
8355ef91ad
Add a default context name to RCTJSCExecutor
...
Reviewed By: mmmulani
Differential Revision: D4015748
fbshipit-source-id: 077287b8438aa13f2a1479d68eacb0662bf295aa
2016-10-14 11:43:43 -07:00
Pieter De Baets
9ed9bca0bf
Lazily instantiate native modules
...
Summary: Instead of sending a list of modules over to JS on startup (and actually blocking script execution) instead provide a proxy object that constructs each of these lazily.
Reviewed By: lexs
Differential Revision: D3936979
fbshipit-source-id: 71bde822f01eb17a29f56c5e60e95e98e207d74d
2016-10-11 07:28:42 -07:00
Emil Sjolander
b7ded130df
Dont use explicit .so file name to support more platforms
...
Reviewed By: dreiss
Differential Revision: D3981166
fbshipit-source-id: 0b19f73e6de48a30613419ccc54735c968701532
2016-10-08 09:28:42 -07:00
Pieter De Baets
5200ac1ee9
Add check for nil nativeToJS bridge
...
Reviewed By: mhorowitz
Differential Revision: D3980922
fbshipit-source-id: ba8ba283cd186a28cd9d5c1c35d4828829864a6a
2016-10-07 08:13:38 -07:00
leeight
9a7e4b4902
Dump invalid json when call Value::fromJSON failed
...
Summary:
See #9117
Closes https://github.com/facebook/react-native/pull/10231
Differential Revision: D3974063
Pulled By: javache
fbshipit-source-id: 63d3ae02ae731cd5a63fcb3a645c612c57cbb8b4
2016-10-05 04:43:45 -07:00
Pieter De Baets
d7d89172c2
Expose ModuleRegistry on ExecutorDelegate
...
Differential Revision: D3944588
fbshipit-source-id: f8450a6735e1f6283c3bfe9d2ce883327172621c
2016-10-03 05:13:38 -07:00
Hoa Dinh
5a24ea0b42
Create headers symlinks for FBReactKit
...
Reviewed By: javache, skotchvail
Differential Revision: D3946452
fbshipit-source-id: c6354f529bec2f9635a0ecf5f65e21dc4e17b1e4
2016-09-30 14:28:41 -07:00
Pieter De Baets
5b52dab781
Remove follySupport.h
...
Reviewed By: lexs
Differential Revision: D3944918
fbshipit-source-id: 702907a12e3916f9d6edde7362416188df909d70
2016-09-30 12:28:41 -07:00
Pieter De Baets
6ee319d8eb
Only configure nativeInjectHMRUpdate in DEBUG builds
...
Reviewed By: martinbigio
Differential Revision: D3944601
fbshipit-source-id: 8b98b7ae9a10c1e95d0ae80f6bbd90675d7c3ef5
2016-09-30 12:28:41 -07:00
Michał Gregorczyk
67f9d92478
Do not use bare file descriptors
...
Reviewed By: nadavrot
Differential Revision: D3945330
fbshipit-source-id: f3a28e2632c7f17a0b6394f3dd3de183bc9e97af
2016-09-30 12:13:51 -07:00
Pieter De Baets
4b70c66a27
Use glob in cxxreact BUCK rule
...
Reviewed By: lexs
Differential Revision: D3944546
fbshipit-source-id: 73cb3eeff3b3f5f543e69893f5071c4bd3e78be4
2016-09-30 09:28:47 -07:00
Michał Gregorczyk
b1fdac47b5
Wire compiled bundle API
...
Differential Revision: D3887878
fbshipit-source-id: 212fc3188f059d7378ecd61bb5e31fc87a857e8a
2016-09-29 09:13:39 -07:00
Michael Lee
fc154fcd74
Add `sign-compare` suppression for warning coming from `gtest.h`
...
Differential Revision: D3935414
fbshipit-source-id: 5f531cc65e74cae4cb23a0706b92dac0f3ef272d
2016-09-28 14:43:46 -07:00
Marc Horowitz
d7a2d3a957
Add API for sync function calls
...
Reviewed By: javache
Differential Revision: D3897526
fbshipit-source-id: cadead316996ca7c1dd2b0d60d87945f5452640c
2016-09-26 16:14:11 -07:00
Marc Horowitz
6071e8ca2c
Support sync loading of the initial bundle/source
...
Reviewed By: javache
Differential Revision: D3897521
fbshipit-source-id: a4f234c7003a5f4be952d315eb62f382836e24dc
2016-09-26 16:14:11 -07:00
Marc Horowitz
971cda8794
Move thread jump for js loading into NativeToJSBridge, out of platform code
...
Reviewed By: javache
Differential Revision: D3906009
fbshipit-source-id: b9782a6c209e3c1626899dac7fd50233cdef87f3
2016-09-26 16:14:10 -07:00
leeight
7fd9e77837
Remove duplicate call delegate->moduleNames()
...
Summary: Closes https://github.com/facebook/react-native/pull/9962
Differential Revision: D3923050
fbshipit-source-id: 59e05e673835beb7409512195170c9a1e20a9ea1
2016-09-26 01:43:41 -07:00
Pieter De Baets
ff79224d37
Simplify ModuleConfig array format
...
Reviewed By: lexs, mhorowitz
Differential Revision: D3901563
fbshipit-source-id: 70aea19db1b01170be57b74ccfa1a306dfa1f362
2016-09-23 11:14:10 -07:00
Pieter De Baets
145109fc6d
Remove additional JSON encoding for native->JS communication
...
Reviewed By: mhorowitz
Differential Revision: D3857323
fbshipit-source-id: 4386cc107b8a1425ecb7297b0f659f6c47f01a78
2016-09-19 04:44:12 -07:00
Chris Hopman
77e533cb9f
Fix value.cpp tests and add tests for bad utf8/16
...
Reviewed By: mhorowitz
Differential Revision: D3699086
fbshipit-source-id: f8e4628a324602c786d6dfeb8f55736f9fc757cd
2016-09-12 16:43:36 -07:00
Chris Hopman
c507a05f70
Use c++1y for cxxreact
...
Reviewed By: mhorowitz
Differential Revision: D3852279
fbshipit-source-id: a7b80170d6b86428db47c15bbf02d68d293112fc
2016-09-12 16:43:36 -07:00
Pieter De Baets
99e0267c25
Cleanup and document native module configuration
...
Summary: Get rid of the old behaviour of JSON encoding in `nativeRequireModuleConfig` and consistently use the same names for function types "async/promise/sync"
Reviewed By: lexs
Differential Revision: D3819348
fbshipit-source-id: fc798a5abcaf6a3ef9d95bd8654afa7825c83967
2016-09-08 04:13:51 -07:00
Marc Horowitz
3940f06211
Add more profiling, fix existing profiling, perf fix
...
Reviewed By: javache
Differential Revision: D3807467
fbshipit-source-id: 3ff6feebd6d7966952152bac708389506de721e6
2016-09-02 12:43:48 -07:00
Marc Horowitz
1d571c5ed5
Don't use the same throw for calling into JSC, and calling into native modules
...
Differential Revision: D3779181
fbshipit-source-id: 7fb17c9c90abd9302137dad3a326c6ce30e7ca86
2016-09-01 15:13:51 -07:00
Adam Ernst
708efcffba
Codemod away buck_flags in Libraries/FBR*
...
Reviewed By: ryu2
fbshipit-source-id: cc2d82a691b67aebfbb8ee8e40ba1ee4b49a0c44
2016-08-29 13:28:44 -07:00
Adam Ernst
2cd9939206
Even less deep copying of flags
...
Reviewed By: yiding
Differential Revision: D3760126
fbshipit-source-id: 590173773f65372c6aa4f4814a7d247ef23015d3
2016-08-29 10:13:48 -07:00
Chris Hopman
ccdc57dd96
Fix handling of bad utf16 passed out of JS
...
Summary:
JSC's utf16 -> utf8 conversion crashes on encountering bad utf16. Instead, use our own conversion (conveniently copied from fbjni).
Original fix thanks to rigdern (https://github.com/facebook/react-native/pull/9302 )
Reviewed By: mhorowitz
Differential Revision: D3746947
fbshipit-source-id: 29887ca720f6a2b074f01f853bad28a083b273bc
2016-08-23 17:13:38 -07:00
Kellie Medlin
2bd1f627ea
Test building with clang 3.9
...
Reviewed By: compnerd
Differential Revision: D3667327
fbshipit-source-id: f3ad04360068ee26aeec6f1c2dbe0ed96ba32ad0
2016-08-10 13:13:34 -07:00
Ben Nham
94ac3e4d08
fix static jsc build for ios
...
Reviewed By: dcaspi
Differential Revision: D3693192
fbshipit-source-id: dca500262e698e02c27c840e74c421ec6bc006fe
2016-08-10 04:28:26 -07:00
Michał Gregorczyk
5405aeb2a3
First step to boot rn apps with hot bytecode cache
...
Reviewed By: tadeuzagallo
Differential Revision: D3561565
fbshipit-source-id: dc1cf580d7b31f30939b180aec38d9b8d0dd0f58
2016-08-04 15:58:36 -07:00
Marc Horowitz
5d0131d31b
Android instrumentation tests for C++ module sync methods.
...
Differential Revision: D3574896
fbshipit-source-id: 8cd4c55b7a472c77cc86fd5cbfe43bc4541ba6ba
2016-08-04 11:43:54 -07:00
Marc Horowitz
e5ccdc4c2d
add support for registering and calling sync methods in C++ modules
...
Differential Revision: D3574800
fbshipit-source-id: 4c238fd96c8f83e9424c8e2bf2c8ebb1d39d397a
2016-08-03 18:13:44 -07:00
Marc Horowitz
da2684f0e7
Refactor CxxNativeModule out of android-specific code into common code
...
Differential Revision: D3574789
fbshipit-source-id: 0cb5965d20dcf7accb6a94514486b8fda1126b7b
2016-08-03 16:01:24 -07:00
Lukas Piatkowski
ec0ccf599a
#15 Add a button in devtools to start/stop the Sampling Profiler
...
Differential Revision: D3555704
fbshipit-source-id: 4add16c923fcfd306892efec4630c24ae438d6dd
2016-08-02 11:14:06 -07:00
Andy Street
0418353249
Add MicroProfiler for low-overhead profiling of JSC/bridge performance
...
Summary:
We have a lot of small-ish calls to JSC and within the bridge that add up during TTI. This gives us a way to measure them in aggregate in a reasonable way.
From the comments:
MicroProfiler is a performance profiler for measuring the cumulative impact of
a large number of small-ish calls. This is normally a problem for standard profilers
like Systrace because the overhead of the profiler itself skews the timings you
are able to collect. This is especially a problem when doing nested calls to
profiled functions, as the parent calls will contain the overhead of their profiling
plus the overhead of all their childrens' profiling.
MicroProfiler attempts to be low overhead by 1) aggregating timings in memory and
2) trying to remove estimated profiling overhead from the returned timings.
To remove estimated overhead, at the beginning of each trace we calculate the
average cost of profiling a no-op code section, as well as invoking the average
cost of invoking the system clock. The former is subtracted out for each child
profiler section that is invoked within a parent profiler section. The latter is
subtracted from each section, child or not.
The usage is similar to Systrace: you put a MICRO_PROFILER_BLOCK in the block you want to profile and C++ RAII will handle timing it.
After MicroProfiler::stopProfiling() is called, a table of tracing data is emitted
to glog (which shows up in logcat on Android).
Differential Revision: D3635319
fbshipit-source-id: 01390b8ac76a68dd425cba2adfdde6e4957440cc
2016-08-02 07:43:31 -07:00
Michał Gregorczyk
73a64ed2eb
Do not set forceProfilerBytecodeGeneration option
...
Reviewed By: bnham
Differential Revision: D3598103
fbshipit-source-id: 3bd7069379cd38bd86c13a87487f546044f66902
2016-07-26 07:28:41 -07:00
Chris Hopman
d67258eb91
Move some really old tests to the cxx bridge
...
Reviewed By: mhorowitz
Differential Revision: D3507905
fbshipit-source-id: cbe55495a991bf6eef961319ba8b219e660dce05
2016-07-25 12:29:25 -07:00
Chris Hopman
e7fba4c123
Remove some throw specifications
...
Reviewed By: mhorowitz
Differential Revision: D3588394
fbshipit-source-id: 56e24f28b1f4eba2564007b395afcac6fa5cb209
2016-07-21 17:43:27 -07:00
Dan Caspi
654e4bed2e
Better folly::dynamic ==> JSValue conversion
...
Reviewed By: lexs
Differential Revision: D3347854
fbshipit-source-id: 95b81152d1b0d5fe41e01991c44f5d1110be7ddb
2016-07-20 04:28:37 -07:00
Lukas Piatkowski
edb9fce9c3
#6 Notify SamplingProfiler of the main MachineThread
...
Reviewed By: bnham
Differential Revision: D3503444
fbshipit-source-id: a2e9a692cd5badac5a15416844c8497f88021a5e
2016-07-15 11:58:31 -07:00
Michał Gregorczyk
3c0f428f05
Fix optimized bundle stuff.
...
Reviewed By: davidaurelio, tadeuzagallo
Differential Revision: D3563710
fbshipit-source-id: 2b0a982d388ee5f44b806f8e561ef49a3fd8c8ca
2016-07-14 15:28:46 -07:00
David Aurelio
df01215006
Reverted commit D3545345
...
Reviewed By: tadeuzagallo
Differential Revision: D3545345
fbshipit-source-id: d655918be7dcadaf8143800497e85f3de44bd48a
2016-07-14 10:58:27 -07:00
Michał Gregorczyk
1331e20db5
add API to CatalystInstanceImpl for executing optimized bundle
...
Reviewed By: tadeuzagallo
Differential Revision: D3545345
fbshipit-source-id: 538fec77b816c3fd767e8c2eda81c78971996b17
2016-07-12 08:13:32 -07:00
Tadeu Zagallo
5d06918d07
Add new FileSourceProvider
...
Summary: Add a new interface to JSC that allows loading a file lazily from disk, i.e. using mmap, instead of loading the whole file upfront and copying into the VM.
Reviewed By: michalgr
Differential Revision: D3534042
fbshipit-source-id: 98b193cc7b7e33248073e2556ea94ce3391507c7
2016-07-11 06:58:26 -07:00
Clement Genzmer
80c23ae324
Reverted commit D3207541
...
Reviewed By: michalgr
Differential Revision: D3207541
fbshipit-source-id: 36366188b7cb74c51d4aa974abd4a648498bcf78
2016-07-07 14:58:43 -07:00
Alexander Blom
be0abd17e5
Remove a bunch of copies
...
Reviewed By: astreet
Differential Revision: D3475592
fbshipit-source-id: 37148bb8d8d47e9301ad549b183029337f7c4ca0
2016-07-07 09:00:01 -07:00
Alexander Blom
95401aba72
Create tracing name in C++ instead of Java
...
Reviewed By: mhorowitz
Differential Revision: D3469140
fbshipit-source-id: 77a00a7150573e44f219972556cbb936a57d7054
2016-07-07 09:00:00 -07:00
Tadeu Zagallo
af24e8001a
Add new FileSourceProvider
...
Reviewed By: michalgr
Differential Revision: D3207541
fbshipit-source-id: d53599c3cf36ae7c89e85a29f637987bc7139159
2016-07-07 08:44:30 -07:00
Andy Street
f5345601d9
Add JSCHelper function to easily install native hooks outside of JSCExecutor
...
Summary: JSCExecutor has something like this, but for methods on JSCExecutor itself. Open to better ideas around how to share code
Reviewed By: lexs
Differential Revision: D3516314
fbshipit-source-id: 4b1265916c52d582bb0b9348e9b4a099f566d6c9
2016-07-07 04:58:47 -07:00
Andy Street
10d41b50c2
Add getType/getPrivate to Value
...
Summary:
Adds:
- getType so you can switch on type
- getPrivate
Reviewed By: lexs
Differential Revision: D3515510
fbshipit-source-id: d574b04f563ac650bacec3751b50be6345e8439a
2016-07-07 04:43:51 -07:00
Andy Street
8a0640716b
Add more Value APIs
...
Summary:
Adds:
- callAsConstructor
- Ability to provide `this` object to callAsFunction
- getPropertyNames() now returns Strings (which can be converted by the caller to std::string if they want).
Fixes:
- double free issue with the String move constructor
Reviewed By: lexs
Differential Revision: D3515398
fbshipit-source-id: afa1342044e41fdd833dd27b8a244a58d4078442
2016-07-06 06:43:26 -07:00
Marc Horowitz
ccd608a4b6
Update nul termination handling to avoid copies on iOS
...
Reviewed By: javache
Differential Revision: D3495998
fbshipit-source-id: 8d69ecc4777402a5d6b0e814af9f1862b47ecaa1
2016-06-30 16:43:56 -07:00
Chris Hopman
df6d18358e
Serialize params when making/queuing native call
...
Reviewed By: mhorowitz
Differential Revision: D3460507
fbshipit-source-id: a0600ffe3da89791af3eb64fc2973eb6aafa7d2b
2016-06-23 14:58:58 -07:00
Greg Pstrucha
c54f468ab2
Enable -Wglobal-constructors
...
Reviewed By: kastiglione
Differential Revision: D3459099
fbshipit-source-id: 2c847dcaf519508101ca6be09aa4d9236e1d7d51
2016-06-22 13:43:32 -07:00
Marc Horowitz
254404b98c
if !WITH_JSCEXTENSIONS, append a \0
...
Reviewed By: astreet
Differential Revision: D3459183
fbshipit-source-id: f62110e67faed827d888afc9a39d1586cdeeb074
2016-06-21 22:13:33 -07:00
Alexander Blom
d63d4f0e9c
Bind methods instead of using eval
...
Reviewed By: astreet
Differential Revision: D3417452
fbshipit-source-id: 437daa2dfcd01efb749465a94c1a72ce8a2cb315
2016-06-21 10:13:33 -07:00
Chris Hopman
1731598428
Add some (possibly temporary) noexcept/throw specifications
...
Reviewed By: mhorowitz
Differential Revision: D3435575
fbshipit-source-id: 93b60a5d6890d21db6b3726784bc6fd868af5ba0
2016-06-16 16:13:17 -07:00
Marc Horowitz
a60b74d974
When executing JS throws an exception, capture the js stack in the C++ exception thrown
...
Reviewed By: davidaurelio
Differential Revision: D3428921
fbshipit-source-id: 0e8be84a2be92558ea3de0d32d1d4a53308d8270
2016-06-16 14:44:18 -07:00
Chris Hopman
b2d4c2e255
Add c++-runloop-backed message queue
...
Reviewed By: mhorowitz
Differential Revision: D3250498
fbshipit-source-id: 4e32153bcf07f6362f55fa558c22551140b34451
2016-06-13 18:13:34 -07:00
Mark Wang
f29e195cb7
More inherited_buck_flags in fbobjc.
...
Reviewed By: beefon
Differential Revision: D3414903
fbshipit-source-id: 83528910b4d7f60765b7bfdb779c1c08921d8b9a
2016-06-11 20:58:23 -07:00