File tree Expand file tree Collapse file tree 1 file changed +14
-13
lines changed
Expand file tree Collapse file tree 1 file changed +14
-13
lines changed Original file line number Diff line number Diff line change 11import { getInitialStatus , getIdleStatus , getStatusProps , statusTypes } from "./status"
22
33// This exists to make sure we don't hold any references to user-provided functions
4- class NeverSettle extends Promise {
5- constructor ( ) {
6- super ( ( ) => { } , ( ) => { } )
7- /* istanbul ignore next */
8- if ( Object . setPrototypeOf ) {
9- // Not available in IE 10, but can be polyfilled
10- Object . setPrototypeOf ( this , NeverSettle . prototype )
11- }
12- }
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
6+ function NeverSettle ( ) { }
7+ /* istanbul ignore next */
8+ if ( Object . setPrototypeOf ) {
9+ Object . setPrototypeOf ( NeverSettle , Promise )
10+ } else {
11+ NeverSettle . __proto__ = Promise
12+ }
13+ NeverSettle . prototype = Object . assign ( Object . create ( Promise . prototype ) , {
1314 finally ( ) {
1415 return this
15- }
16+ } ,
1617 catch ( ) {
1718 return this
18- }
19+ } ,
1920 then ( ) {
2021 return this
21- }
22- }
22+ } ,
23+ } )
2324
2425export const neverSettle = new NeverSettle ( )
2526
You can’t perform that action at this time.
0 commit comments