fix(zone.js): zone.js toString patch should check typeof Promise is function (#38350)
Close #38361 zone.js monkey patch toString, and check the instance is `Promise` or not by using `instanceof Promise`, sometimes when Promise is not available, the `instanceof` operation fails and throw `TypeError: Right-hand side of 'instanceof' is not an object` this PR check `typeof Promise` equals to function or not to prevent the error. PR Close #38350
This commit is contained in:

committed by
Misko Hevery

parent
cb3db0d31b
commit
18e474f522
@ -18,6 +18,18 @@ describe('global function patch', () => {
|
||||
.toEqual(Function.prototype.toString.call(g[zoneSymbol('setTimeout')]));
|
||||
});
|
||||
|
||||
it('should not throw error if Promise is not a function', () => {
|
||||
const P = g.Promise;
|
||||
try {
|
||||
g.Promise = undefined;
|
||||
expect(() => {
|
||||
const a = {}.toString();
|
||||
}).not.toThrow();
|
||||
} finally {
|
||||
g.Promise = P;
|
||||
}
|
||||
});
|
||||
|
||||
it('MutationObserver toString should be the same with native version',
|
||||
ifEnvSupports('MutationObserver', () => {
|
||||
const nativeMutationObserver = g[zoneSymbol('MutationObserver')];
|
||||
|
Reference in New Issue
Block a user