Commit Graph
323 Commits
Author SHA1 Message Date
Dominic GannawayandGitHub 4b444c73f6 Merge pull request #9045 from trueadm/emptyObject-reference-mismatch-due-to-mocking
[Fiber] fix ensure class components refs get re-assigned to emptyObject on mount
2017-02-23 15:38:10 +00:00
Dominic GannawayandGitHub ac5f24e1a5 Merge pull request #9043 from trueadm/fix-fiber-functional-componment-childcontext
[Fiber] adds `childContextTypes` warnings for functional components
2017-02-23 15:37:48 +00:00
Dominic Gannaway a45cb185a9 added a regression test for factory components 2017-02-23 14:00:02 +00:00
Ben AlpertandGitHub 0f71361fa9 Add test for hack to stop bubbling (#8922) 2017-02-22 14:02:10 -08:00
Andrew ClarkandGitHub ff89ef7ea0 Merge pull request #8949 from acdlite/fibercomponentlifecycletests
[Fiber] Component lifecycle tests
2017-02-22 12:54:42 -08:00
Brian VaughnandBrian Vaughn abcac99e61 Fix bugs that occur when event responder unmounts during a touch event sequence
> This PR adds a test (initially failing) for this case along with a fix for stack and fiber. The stack fix was copied from a Diff submitted by @sema. The fiber fix just required us to stop leaking properties for unmounted views.
> Longer term we may want to explicitly invoke a release event listener for a responder just before unmounting it. This PR does not do that.
2017-02-22 12:47:34 -08:00
Dominic Gannaway 498990c90e updated tests-failing and test-passing 2017-02-22 16:16:21 +00:00
Dominic Gannaway 54a613c028 adds childContextTypes warnings for functional components
ReactStatelessComponent-test.js fails due to warnings not showing up when functional components mount or update. This PR ports the existing warnings from stack and re-applies them to fiber functional components and attempts to re-use some logic in ReactFiberContext that currently exists for showing warnings when dealing with class components.
2017-02-22 14:21:10 +00:00
Andrew Clark f337d7b02e Run test script 2017-02-21 14:43:01 -08:00
Ben AlpertandGitHub 61e92667ff Fix Fiber devtools prod (#9019) 2017-02-16 18:00:49 -08:00
Brandon DailandDan Abramov 64d65f29c8 Revert "Revert "Missing a space for error 125"" (#8995) 2017-02-13 23:15:08 +00:00
Dan AbramovandGitHub ef3f152ce2 Revert "Missing a space for error 125" (#8994) 2017-02-13 23:11:05 +00:00
Phil RajchgotandBrandon Dail 0ad8f7c7cc Missing a space for error 125 (#8981) 2017-02-13 16:21:15 -06:00
Sean GranseeandBrandon Dail 57621733ec fix misspellings in comments and tests (#8946)
* fix misspellings in comments and tests

* revert change in docs/js/react-dom.js
2017-02-13 16:01:54 -06:00
Toru KobayashiandAndrew Clark 447706e9d9 Remove React.__spread 2017-02-10 12:27:02 -08:00
Leland RichardsonandDan Abramov ae34be13c3 Add toTree() method to stack and fiber TestRenderer (#8931)
* Add toTree() method to stack and fiber TestRenderer

* Address PR feedback

* Refactor TestRenderer to use correct root

* Rebase off master and fix root node references

* Add flow types

* Add test for null rendering components

* Remove last remaining lint error

* Add missing test
2017-02-09 20:55:00 +00:00
Dan AbramovandGitHub d4e1224534 Fix release guide again 2017-02-09 16:15:04 +00:00
Dan AbramovandGitHub 49b7e71623 Fix release guide 2017-02-09 16:14:27 +00:00
Sebastian MarkbågeandDan Abramov c580f9ac8d Use separate feature flag for ReactTestRenderer (#8965)
The ReactDOMFeatureFlags is not reachable from the npm package since it is
in a separate build so we need a separate one.
2017-02-09 16:00:59 +00:00
Brian VaughnandGitHub 5aa9af72d1 Fixed ReactNativeFiber event handling regression (#8959)
* Fixed ReactNativeFiber event system regression introduced in 71fb1e6
Also added test coverage to ReactNativeEvents-test for Fiber

* ReactNative tests now run against fiber renderer when env flag set
Updated the test-framework-setup file so that record-tests runs native tests against ReactNativeFiber. ReactComponentTreeHook native tests all now fail but that's expected.

* Avoid calling setChildren() if no children
2017-02-08 21:28:56 -10:00
Andrew Clark ed81248a0b Warn about calling setState on an unmounted component 2017-02-08 11:23:58 -08:00
Andrew Clark 605701b1c9 Use isMounted instead of instance map to check if mounted 2017-02-08 10:33:00 -08:00
Andrew Clark c54f5a0568 Warn if findDOMNode is used inside render
Need to reset current owner to null before committing
2017-02-08 10:32:14 -08:00
Andrew Clark a0e85d5456 Warn about isMounted inside render 2017-02-08 10:31:30 -08:00
Andrew Clark 717a891e17 Don't test input value clean-up in Fiber
Fiber doesn't clean up host components; relies on GC.
2017-02-08 10:26:47 -08:00
Sebastian MarkbågeandGitHub 51d7fa6606 Move DOM dependent tests out of the shared folder (#8954)
We have a bunch of tests that are meant to test generic React behavior.
However, we've written the tests against the DOM renderer. This moves
tests that depend on ReactDOM or ReactTestUtils out of the shared repo.

This will let us sync the shared repo directly to environments that don't
support running these tests. Such as React Native.
2017-02-08 10:20:02 -08:00
Dan AbramovandGitHub 91f6cd7ee1 Re-add the warning if PropType function is called manually (#8903)
* Revert "Revert "Warn if PropType function is called manually (#7132)""

This reverts commit be71f76ed8b7dbad25e3519455605252d3daf683.

In other words, now we again have the warning if you attempt to call PropTypes manually.
It was removed in #8066 but we shouldn't have done this since we still want to avoid people accidentally calling them in production (and even more so since now it would throw).

Fixes #8080.

* Pass secret in ReactControlledValuePropTypes

* Record tests
2017-02-08 16:29:19 +00:00
Andrew ClarkandGitHub a8f8d8fd10 Merge pull request #8919 from acdlite/fibermounttests
[Fiber] Mount/unmount warnings and invariants
2017-02-06 18:00:50 -08:00
Andrew Clark 02d3530a3c Continue warning if a Map is rendered as a child
The entries of a map are a two-element array of [key, value], which
React will treat as fragments with children. This is unlikely to ever
be the intended behavior, so we warn.
2017-02-06 17:07:19 -08:00
Andrew Clark 65d0567f72 Remove experimental support for maps as children 2017-02-06 15:51:19 -08:00
Andrew Clark 223930a0cf Run test script 2017-02-06 14:22:27 -08:00
Ben AlpertandGitHub ad087236d2 Ensure first error is thrown if HostRoot catches two errors in commit phase (#8923)
Previously, we were overwriting capturedErrors with the second error and throwing that one.
2017-02-03 11:12:28 -08:00
Andrew Clark c248600fc4 Loosen assertion so it matches any production error
The exact error code isn't important.
2017-02-02 11:17:56 -08:00
Andrew Clark 175c33edb6 Fix formatting of invalid element invariant
Message is slightly different for functional and class components.
2017-01-31 15:29:53 -08:00
Andrew Clark de07331ab7 Remove legacy React element warning 2017-01-31 11:46:30 -08:00
Andrew Clark 662e68deb1 Run test script 2017-01-31 11:44:35 -08:00
Zac BraddyandBrian Vaughn 8f67749f91 Got rid of linting errors on windows machines and a number of linting warnings. (#8846) 2017-01-28 15:36:03 -08:00
Sebastian Markbage 88dd645615 Don't bail to .child of coroutines
This should bail to stateNode instead.
2017-01-25 17:50:21 -08:00
Sebastian Markbage 4868a77f51 Add failing tests for coroutines
There are a few different issues:

* Updates result in unnecessary duplicate placements because it can't find the current fiber for continuations.
* When run together, coroutine update and unmounting tests appear to lock down in an infinite loop. They don't freeze in isolation.

I don't have a solution for this but just leaving it for future fixes.
2017-01-25 15:41:48 -08:00
Andrew Clark 137184c47a Add test for mocked render functions
Treat them as if they return null
2017-01-25 11:52:48 -08:00
Andrew Clark 80caa4adb1 Make disableNewFiberFeatures = true the default when runnings tests
This exposed a few more cases that I missed.
2017-01-25 11:52:48 -08:00
Andrew Clark 117e723698 Add test for iterables, too 2017-01-25 11:52:48 -08:00
Andrew Clark d1924bbc88 disableNewFiberFeatures bugfix: host component children arrays 2017-01-25 11:52:48 -08:00
Brandon DailandBrandon Dail 545b9f9506 Add deprecation tests to fiber test tracker 2017-01-24 00:18:23 -06:00
Dan Abramov 6b2b36fee9 Tweak RRM instructions to mention Yarn instead 2017-01-23 18:01:27 +00:00
Brian VaughnandGitHub 9b6171819d Support for ReactFeatureFlags.logTopLevelRenders timing (#8687)
Call `console.time` / `console.timeEnd` for the top level component when `ReactFeatureFlags.logTopLevelRenders` is enabled
2017-01-21 09:44:47 -08:00
Sebastian MarkbågeandGitHub 13ee847b71 Read "current" props from the node instead of the Fiber (#8839)
It's not just events that read the current props. Controlled components
do as well. Since we're no longer updating the Fiber pointer during updates
we have to instead read from the node props to get the current props.

Since this method is no longer just used for events I renamed it.
2017-01-20 23:25:25 -08:00
Sebastian MarkbågeandGitHub 71fb1e6dcb [Fiber] Compute the Host Diff During Reconciliation (#8607)
* Allow renderers to return an update payload in prepareUpdate

This then gets stored on updateQueue so that the renderer doesn't need to
think about how to store this.

It then gets passed into commitUpdate during the commit phase.

This allows renderers to do the diffing during the time sliced path,
allocate a queue for changes and do only the absolute minimal work to
apply those changes in the commit phase.

If refs update we still schedule and update.

* Hack around the listener problem

* Diff ReactDOMFiber properties in prepareUpdate

We now take advantage of the new capability to diff properties early.
We do this by generating an update payload in the form of an array with
each property name and value that we're about to update.

* Add todo for handling wasCustomComponentTag

* Always force an update to wrapper components

Wrapper components have custom logic that gets applied at the commit phase
so we always need to ensure that we schedule an update for them.

* Remove rootContainerInstance from commitMount

No use case yet and I removed it from commitUpdate earlier.

* Use update signal object in test renderer

* Incorporate 8652 into new algorithm

* Fix comment

* Add failing test for flipping event handlers

This illustrates the problem that happens if we store a pointer to the
Fiber and then choose not to update that pointer when no properties change.
That causes an old Fiber to be retained on the DOM node. Then that Fiber
can be reused by the pooling mechanism which then will mutate that Fiber
with new event handlers, which makes them active before commit.

* Store current props in the RN instance cache and on the DOM node

This represents the current set of event listeners. By not relying on the
Fiber, it allows us to avoid doing any effects in the commit phase when
nothing changes.

This is a bit ugly. Not super happy how this all came together.
2017-01-19 21:56:15 -08:00
Tom GassonandBrandon Dail b87e20c999 Fix fiber/record-tests to work on windows (slash differences) (#8796) 2017-01-14 21:16:03 -06:00
Dan AbramovandGitHub eb0f91a074 [Fiber] Fix rendering SVG into non-React SVG tree (#8638)
* Add a test for rendering SVG into a non-React SVG tree

It is failing in Fiber.

* Add a test for rendering HTML into non-React foreignObject

It happens to pass in Fiber.

* Determine root namespace by container namespace, not just tag

A tag alone is not enough to determine the tree namespace.

* Skip the test that exhibits jsdom bug in non-createElement mode

jsdom doesn't give HTML namespace to foreignObject.innerHTML children.
This problem doesn't exist in the browsers.

https://github.com/facebook/react/pull/8638#issuecomment-269349642

We will skip this test in non-createElement mode considering
that non-createElement mounting is effectively dead code now anyway.
2017-01-14 05:11:51 -08:00