Turns out that
Object.create in NormalizedEventListener is actually causing some bugs, so we just changed that internally. We're still working out the kinks to our code sync process but that should be making it's way to master soon.
In the meantime, if having es5shim+sham on the site would help, we can make that happen.
I can't tell from your answer whether that means that es5-sham should be used and its presence can be relied upon, or if it should go away completely once the code sync happens.
Having the shims on the site might help. How have you been testing in IE8? (Also in general – I've been repeatedly running
grunt build then using the examples to test but maybe there's some good way of loading React that doesn't require the explicit build step?)
es5-sham might be able to go away (I don't actually know all the polyfills we need and which live in shim vs sham). I know for sure we need something to completely support IE8. Even if we get rid of this
Object.create we have some
Array.isArray in there. We should document this better.
Our IE8 testing has been facebook.com :) In general though, if you're making internal changes then you'll need to rebuild to test.
grunt build builds debug and minified builds - you can skip the minified step by just run
grunt build:basic, might make that cycle a little faster. You could also run the automated tests in browser with
grunt test --debug which should start a server which you can hit from any browser. This doesn't help the shim issue though, so probably won't be much use in IE8.
Having a no-build way to test would be smart. I bet we could maybe do it using requirejs or maybe a node server that just builds react.js on demand... but for now building is the only option.
grunt test builds just enough stuff to run the Jasmine specs, so it takes a lot less time than
I made a quick attempt to use React with the only the necessary parts of es5-shim and it appears that Function.prototype.bind, Array.isArray, and Array.prototype.indexOf are the only needed functions. I wonder if it's worth including just those ~50 lines of code in React directly and claiming native IE8 support?
edit: Also Date.now(), but that can be replaced with +new Date without hurting anyone.
I suppose it's because Array.prototype methods like map or Function.prototype.bind are useful in render method. And IE8 is dying.
This can be closed now, right @zpao @spicyj ?
Yea, we talk about all the polyfills needed in the "Browser Suppport and Polyfills" (oh man clownshoes) section of http://facebook.github.io/react/docs/working-with-the-browser.html
Related Issues (20)
- Bug: App stuck in Suspense "state" re-rendering loop after migrating to React v18.2 HOT 2
- Bug: `startTransition` doesn't work with `useSyncExternalStore` HOT 2
- the prev line `createContainer`, root.current = new FiberNode(...), the fiber node will be freeze with preventExtensions api , markContainerAsRoot is not effect in here.
- Bug: Component is not a function when using Suspense and forwardRef HOT 4
- [DevTools Bug] Cannot add node "8891" because a node with that id is already in the Store. HOT 1
- Bug: Two tests failing without any changes
- Bug: `Cannot set properties of null (setting 'dev')` When running `npm link ../myapp/node_modules/react`
- Add in-built styling capability of React Components HOT 3
- Is there any way you can provide a code sample that reproduces the problem? That error should only occur if there's a bug in React, so it'd be very helpful if we could reproduce.
- Bug: HOT 1
- form fields with different type but no key get reused when re-rendering HOT 3
- [DevTools Bug]: HOT 1
- Bug: forwardRef provides an empty object as ref, causing `can't define property "current"` error.
- Bug: HOT 2
- unable to run examples in React tictactoe tutorial HOT 4
- Bug: React css module class name generation doesn't work HOT 1
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.