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
Alexander Blom
bc7ec03670
Add better markers for getConfig
...
Reviewed By: astreet
Differential Revision: D3358278
fbshipit-source-id: 16668cd33a42a120c2de88be4cb4a1c8d0d5a13c
2016-06-06 11:58:32 -07:00
Chris Hopman
db3adb4445
Cancel pending bridge work during shutdown
...
Reviewed By: mhorowitz
Differential Revision: D3381541
fbshipit-source-id: 51a3f766509ec78262792817dee3d5e6969ff05f
2016-06-02 17:13:27 -07:00
Chris Hopman
5e8f1716fc
Build new bridge with gradle
...
Reviewed By: bestander
Differential Revision: D3324351
fbshipit-source-id: 41fa18a23c8661440a7deff244c93278f418e1d9
2016-05-27 16:13:37 -07:00
Charles Dick
f948662013
Drop JSC code on background
...
Reviewed By: lexs
Differential Revision: D3311037
fbshipit-source-id: e46559108c51f1cd163ed5c557d23c21f696ef88
2016-05-26 11:13:42 -07:00
Chris Hopman
a8acf8a5ce
Move cxx module support into oss
...
Reviewed By: mhorowitz
Differential Revision: D3319751
fbshipit-source-id: 87f91a541cfbbe45bd8561d94f269ba976a9f702
2016-05-24 19:28:59 -07:00
Chris Hopman
2ec9e0c690
Stop catching exceptions in the cxx bridge
...
Reviewed By: mhorowitz
Differential Revision: D3186631
fbshipit-source-id: 5664897b82277159c2b74b289f9a5d416633e243
2016-05-20 18:58:25 -07:00
Marc Horowitz
6796f136f1
shut down JSC before quitting its thread
...
Differential Revision: D3280544
fbshipit-source-id: 2a3ef2c445aaa1b224ac391b020467e087c0b81d
2016-05-18 12:58:47 -07:00
Marc Horowitz
779314a413
Implement incremental module requires
...
Differential Revision: D3234844
fbshipit-source-id: 24615528ad6a049aad7c2dbb7ce55e8b034c79e7
2016-05-18 12:58:47 -07:00
Michał Gregorczyk
89b68419ff
Add jsc initialization markers to cxx bridge
...
Reviewed By: lexs
Differential Revision: D3303919
fbshipit-source-id: 0dbbe89de9de165a9d7a1597be050f37ed10a878
2016-05-17 04:28:25 -07:00
Alexander Blom
3fe2e6581c
Remove duplicate install of nativeFlushQueueImmediate
...
Summary:
This was accidentally added twice.
**Test plan (required)**
CI
Closes https://github.com/facebook/react-native/pull/7584
Differential Revision: D3305537
Pulled By: astreet
fbshipit-source-id: 7d652f9c7762cb66715f1b7235a186513d9b938d
2016-05-16 10:28:45 -07:00
Marc Horowitz
9e9dfd2ac9
Introduce non-copyable JSBigString for managing large strings efficiently
...
Reviewed By: astreet
Differential Revision: D3234836
fbshipit-source-id: 2b95b585dc1215988b88cf0d609c778a95b362a1
2016-05-13 17:29:00 -07:00
Marc Horowitz
f433ed716c
Make the pattern for adding systrace sections more concise
...
Reviewed By: astreet
Differential Revision: D3234834
fbshipit-source-id: 73e191deb4dd0e06d4c242e46a582051d4bcc9ba
2016-05-13 17:29:00 -07:00
Marc Horowitz
86f2eb18e5
Support JS Systrace on all platforms
...
Reviewed By: tadeuzagallo
Differential Revision: D3234830
fbshipit-source-id: 94cc870d47d620c8bd8d35f83d0b017e5ddba90d
2016-05-13 17:29:00 -07:00
Marc Horowitz
b7fe8e68be
Finer granularity systracing
...
Reviewed By: astreet
Differential Revision: D3234826
fbshipit-source-id: 900ab93b847949413a134a87a20b0d826c58da3d
2016-05-13 17:29:00 -07:00
Marc Horowitz
05832c3469
Catch any std::exception from unbundling
...
Reviewed By: davidaurelio
Differential Revision: D3148408
fbshipit-source-id: 78dc47e1b092cb7fd06307d505a795d2009cee4d
2016-05-13 17:29:00 -07:00
Marc Horowitz
448b48ca85
remove useless text from js errors
...
Reviewed By: astreet
Differential Revision: D3127112
fbshipit-source-id: 56ee9da8cd7d409c7b13864e6d4cc863146d19f0
2016-05-13 17:29:00 -07:00
Marc Horowitz
7762297f77
add supportsWebWorkers
...
Reviewed By: lexs
Differential Revision: D3149754
fbshipit-source-id: 58bce886aff526bc7152eaca2f43a654dcb5ad2a
2016-05-13 17:29:00 -07:00
Alexander Blom
e4bb9f52e5
Move all hooks over to new helper
...
Reviewed By: astreet
Differential Revision: D3292927
fbshipit-source-id: baafa6ded3872391ae1319b2855b2616ec79c2ad
2016-05-12 14:33:28 -07:00
Alexander Blom
cafd63440a
Add helper for installing method as hook
...
Reviewed By: astreet
Differential Revision: D3292457
fbshipit-source-id: 590637dbf868097214ca9cb7b9a6543dc48a898f
2016-05-12 14:33:28 -07:00
Michał Gregorczyk
cd691e2cc2
Let jsc know it will run web worker
...
Reviewed By: astreet
Differential Revision: D3287543
fbshipit-source-id: 2a9de938feec417aef34c0ff26f138730b32929f
2016-05-12 08:13:21 -07:00
Alexander Blom
0934470676
Remove JS config completely
...
Reviewed By: astreet
Differential Revision: D3276230
fbshipit-source-id: b3ab7e7dc149696b7db1049613fbb6a2a19bc8fb
2016-05-11 11:39:20 -07:00
Andy Street
6ec5b953cb
Red box c++ exceptions thrown while executing sync hooks
...
Summary: Also adds support for creating JS Error objects. When we clean up the way global functions are installed on JSC, we'll be able to use this pattern to auto-catch all c++ exceptions at this level.
Reviewed By: lexs
Differential Revision: D3276663
fbshipit-source-id: bf3561690013019a25e2be5a4d1b69ba9e002c72
2016-05-10 05:03:30 -07:00
Alexander Blom
c6d3ca858e
Avoid bounce to same message queue
...
Reviewed By: astreet
Differential Revision: D3269661
fb-gh-sync-id: b22ea45de9e9ddbe8471f10e9c475a5746aec34e
fbshipit-source-id: b22ea45de9e9ddbe8471f10e9c475a5746aec34e
2016-05-07 02:36:28 -07:00
Chris Hopman
24fe8b7e92
Move xplat bridge core to OSS
...
Reviewed By: mhorowitz
Differential Revision: D3237829
fb-gh-sync-id: 348c7d1e2810400c1259e3d99c2d026da4a39816
fbshipit-source-id: 348c7d1e2810400c1259e3d99c2d026da4a39816
2016-05-03 19:30:48 -07:00