Skip to content

Commit edd85e6

Browse files
committed
[Fix] static Promise methods have the wrong length in Firefox.
1 parent 4f31053 commit edd85e6

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

es6-shim.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2550,6 +2550,30 @@
25502550
/*globals Promise: false */
25512551
overrideNative(globals, 'Promise', PromiseShim);
25522552
}
2553+
if (Promise.all.length !== 1) {
2554+
var origAll = Promise.all;
2555+
overrideNative(Promise, 'all', function all(iterable) {
2556+
return ES.Call(origAll, this, arguments);
2557+
});
2558+
}
2559+
if (Promise.race.length !== 1) {
2560+
var origRace = Promise.race;
2561+
overrideNative(Promise, 'race', function race(iterable) {
2562+
return ES.Call(origRace, this, arguments);
2563+
});
2564+
}
2565+
if (Promise.resolve.length !== 1) {
2566+
var origResolve = Promise.resolve;
2567+
overrideNative(Promise, 'resolve', function resolve(x) {
2568+
return ES.Call(origResolve, this, arguments);
2569+
});
2570+
}
2571+
if (Promise.reject.length !== 1) {
2572+
var origReject = Promise.reject;
2573+
overrideNative(Promise, 'reject', function reject(r) {
2574+
return ES.Call(origReject, this, arguments);
2575+
});
2576+
}
25532577
ensureEnumerable(Promise, 'all');
25542578
ensureEnumerable(Promise, 'race');
25552579
ensureEnumerable(Promise, 'resolve');

0 commit comments

Comments
 (0)