Commit Graph
5283 Commits
Author SHA1 Message Date
Ignacio Carbajo e11631eea7 Fix documentation errata 2015-09-16 22:25:46 +02:00
Paul O’Shannessy f9bbc06960 Merge pull request #4858 from zpao/eslint-1.4
Upgrade eslint to 1.4.1
2015-09-16 12:35:12 -07:00
Paul O’Shannessy 20f0b0f464 Upgrade eslint to 1.4.1 2015-09-16 12:16:46 -07:00
Paul O’Shannessy 0fb49fc4dc Merge pull request #4859 from zpao/stateless-arrow-functions
Support native arrow functions as stateless components
2015-09-16 12:02:38 -07:00
Paul O’Shannessy e5c3fb14fa Support arrow functions as stateless components 2015-09-16 11:39:41 -07:00
Ben Alpert 2db38bf935 Merge pull request #4887 from spicyj/form-proptypes-dev
Check input and textarea propTypes only in DEV
2015-09-16 11:31:08 -07:00
Ben Alpert 65370ff752 Check input and textarea propTypes only in DEV 2015-09-15 21:46:37 -07:00
Paul O’Shannessy a48ffb04dc Merge pull request #4884 from moretti/patch-1
[docs] Fix syntax errors in Animation
2015-09-15 11:30:20 -07:00
Paolo Moretti fb45ef3679 Fix syntax errors 2015-09-15 18:12:42 +01:00
Paul O’Shannessy 609f14eed4 Merge pull request #4874 from brigand/patch-6
Clarifies "Fetching from the server"
2015-09-14 20:42:54 -07:00
Frankie Bagnardi 584a7c5f1c Clarifies "Fetching from the server" 2015-09-14 20:21:52 -07:00
Paul O’Shannessy 0bb906ed8c Merge pull request #4829 from zpao/docs-jekyll-feed
[docs] Use a generator to assign complete author data before generating site
2015-09-14 20:18:27 -07:00
Paul O’Shannessy b0bf35a361 [docs] Use a generator to assign complete author data before generating site
This makes sure that `post.author` will be the actual data we want and we don't have to assign it every time, potentially messing it up.
2015-09-14 19:55:01 -07:00
Paul O’Shannessy e97da42b67 Merge pull request #4868 from AnSavvides/docs-readability
Make docs more consistent
2015-09-14 13:10:57 -07:00
Paul O’Shannessy b53dfa6d27 Merge pull request #4869 from arush/patch-1
DOCS - typo in ref callback example
2015-09-14 11:42:08 -07:00
arush 29551f84b8 DOCS - typo in ref callback example
deleted extra ending curly brace in arrow function
2015-09-14 11:40:44 -07:00
Christoph Pojer 95eee11b66 Merge pull request #4866 from andrewsokolov/bug/--no-explicit-require-didnt-works
[react-codemod] --no* options automatically set to false
2015-09-14 11:05:19 -07:00
Andreas Savvides e04602f8ee Use same type of markdown as everywhere else for Glossary 2015-09-14 18:55:34 +01:00
Andreas Savvides 3c5a91c3c3 Make it easier to create an issue 2015-09-14 18:45:29 +01:00
Andreas Savvides c207ab2901 Make "Component Specs and Lifecycle" more readable 2015-09-14 18:43:16 +01:00
Andreas Savvides f98112f24d Make "Component API" more readable 2015-09-14 18:23:00 +01:00
Steven Luscher 15b57b1658 Merge pull request #4845 from steveluscher/community-roundup-27-relay-edition
Community Roundup #27 – Relay Edition
2015-09-14 08:14:43 -07:00
andrewsokolov 0610fd93b4 --no* options automatically set to false 2015-09-14 17:30:25 +03:00
Steven Luscher f30b0d1f1c Community Roundup #27 – Relay Edition 2015-09-13 21:26:34 -07:00
Paul O’Shannessy 0cc8af37c3 Merge pull request #4861 from zpao/symbol-test-node4
Better simulate Symbol-less environment
2015-09-13 13:55:26 -07:00
Paul O’Shannessy d54fa9e563 Better simulate Symbol-less environment
This ensures that our tests expecting Symbol not to exist pass.
2015-09-13 13:15:26 -07:00
Jim 2fcf54939b Merge pull request #4855 from iamchenxin/master
Maintain why-react-zh-CN sync to the current why-react
2015-09-12 08:57:31 -07:00
iamchenxin d92f4782ac Update translation for jsx-in-depth-zh-CN 2015-09-12 18:09:58 +08:00
iamchenxin 787b49ae78 Maintain why-react-zh-CN sync to the current why-react 2015-09-12 16:29:46 +08:00
Paul O’Shannessy ed11f83763 Merge pull request #4833 from youngminz/master
Update Korean translation
2015-09-10 16:25:58 -07:00
Paul O’Shannessy c6ecda7503 Merge pull request #4802 from 8398a7/patch-1
Update Japanese translation to 75fafe1
2015-09-10 15:35:06 -07:00
839 852753c13a Update Japanese translation to 75fafe1 2015-09-10 15:33:34 -07:00
Ben Alpert 4b3b56f36a Add Babel version to blog post 2015-09-10 13:28:46 -07:00
Ben Alpert 04e5ee70cc Merge pull request #4797 from spicyj/rc14blog
0.14 RC blog post
2015-09-10 09:50:56 -07:00
Ben Alpert 5bf56134be 0.14 RC blog post 2015-09-10 09:21:56 -07:00
Ben Alpert 4a4174b9e8 0.14.0-rc1 v0.14.0-rc1 2015-09-10 08:47:40 -07:00
Ben Alpert 21a1f7e6fd Don't copy JSXTransformer in grunt release 2015-09-10 08:47:40 -07:00
Paul O’Shannessy 31f25255b9 Stop building JSXTransformer
Pick of/closes #4148.
2015-09-10 08:45:04 -07:00
Koo Youngmin 2ae036123c Update Korean translation 2015-09-10 16:47:15 +09:00
Sebastian Markbåge 7a00239b1f Merge pull request #4832 from sebmarkbage/xssfix
Use a Symbol to tag every ReactElement
2015-09-09 23:19:33 -07:00
Sebastian Markbage 031fc24dae Use a Symbol to tag every ReactElement
Fixes #3473

I tag each React element with `$$typeof: Symbol.for('react.element')`. We need
this to be able to safely distinguish these from plain objects that might have
come from user provided JSON.

The idiomatic JavaScript way of tagging an object is for it to inherent some
prototype and then use `instanceof` to test for it.

However, this has limitations since it doesn't work with value types which
require `typeof` checks. They also don't work across realms. Which is why there
are alternative tag checks like `Array.isArray` or the `toStringTag`. Another
problem is that different instances of React that might have been created not knowing about eachother. npm tends to make this kind of problem occur a lot.

Additionally, it is our hope that ReactElement will one day be specified in
terms of a "Value Type" style record instead of a plain Object.

This Value Types proposal by @nikomatsakis is currently on hold but does satisfy all these requirements:

https://github.com/nikomatsakis/typed-objects-explainer/blob/master/valuetypes.md#the-typeof-operator

Additionally, there is already a system for coordinating tags across module
systems and even realms in ES6. Namely using `Symbol.for`.

Currently these objects are not able to transfer between Workers but there is
nothing preventing that from being possible in the future. You could imagine
even `Symbol.for` working across Worker boundaries. You could also build a
system that coordinates Symbols and Value Types from server to client or through
serialized forms. That's beyond the scope of React itself, and if it was built
it seems like it would belong with the `Symbol` system. A system could override
the `Symbol.for('react.element')` to return a plain yet
cryptographically random or unique number. That would allow ReactElements to
pass through JSON without risking the XSS issue.

The fallback solution is a plain well-known number. This makes it unsafe with
regard to the XSS issue described in #3473. We could have used a much more
convoluted solution to protect against JSON specifically but that would require
some kind of significant coordination, or change the check to do a
`typeof element.$$typeof === 'function'` check which would not make it unique to
React. It seems cleaner to just use a fixed number since the protection is just
a secondary layer anyway. I'm not sure if this is the right tradeoff.

In short, if you want the XSS protection, use a proper Symbol polyfill.

Finally, the reason for calling it `$$typeof` is to avoid confusion with `.type`
and the use case is to add a tag that the `typeof` operator would refer to.
I would use `@@typeof` but that seems to deopt in JSC. I also don't use
`__typeof` because this is more than a framework private. It should really be
part of the polyfilling layer.
2015-09-09 23:19:00 -07:00
Ben Alpert a05691f0ad Merge pull request #4747 from spicyj/gh-1939
Don't crash in event handling when mixing React copies
2015-09-09 22:10:19 -07:00
Ben Alpert dc2570e1ce Merge pull request #4825 from spicyj/gh-2770
Preserve DOM node when updating empty component
2015-09-09 22:09:34 -07:00
Ben Alpert 14ede77123 Merge pull request #4827 from spicyj/occured
occured -> occurred
2015-09-09 16:29:43 -07:00
Ben Alpert 0b857a473a occured -> occurred 2015-09-09 16:19:40 -07:00
Ben Alpert db589a7175 Preserve DOM node when updating empty component
Fixes #2770.
2015-09-09 14:00:59 -07:00
Ben Alpert 999b0f9b3e Refactor empty component handling
Now doesn't use ReactCompositeComponent and `._currentElement` is actually null/false.
2015-09-09 14:00:58 -07:00
Ben Alpert 3dbdb63a7d Merge pull request #4823 from spicyj/gh-4776
Don't try to iterate over non-objects
2015-09-09 12:55:20 -07:00
Ben Alpert 35b7fe175d Merge pull request #4821 from spicyj/dom-dist
Add react-dom to dist/ in npm package
2015-09-09 12:02:47 -07:00
Paul O’Shannessy 12b6f3d03c Merge pull request #4824 from facebook/prefill-stack-overflow-tag
Pre-fill tag when asking a Stack Overflow question
2015-09-09 11:31:00 -07:00