Skip to content

Commit 463c4b5

Browse files
committed
Fallback to setting __proto__.
1 parent 077564c commit 463c4b5

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

packages/react-async/src/reducer.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { getInitialStatus, getIdleStatus, getStatusProps, statusTypes } from "./status"
22

33
// This exists to make sure we don't hold any references to user-provided functions
4+
// The way NeverSettle extends from Promise is complicated, but can't be done differently because Babel doesn't support
5+
// extending built-in classes. See https://babeljs.io/docs/en/caveats/#classes
46
function NeverSettle() {}
57
/* istanbul ignore next */
68
if (Object.setPrototypeOf) {
7-
// Not available in IE 10, but can be polyfilled
89
Object.setPrototypeOf(NeverSettle, Promise)
10+
} else {
11+
NeverSettle.__proto__ = Promise
912
}
1013
NeverSettle.prototype = Object.assign(Object.create(Promise.prototype), {
1114
finally() {

0 commit comments

Comments
 (0)