|
9 | 9 | import {patchFilteredProperties} from '../../lib/browser/property-descriptor'; |
10 | 10 | import {patchEventTarget} from '../../lib/common/events'; |
11 | 11 | import {isBrowser, isIEOrEdge, isMix, zoneSymbol} from '../../lib/common/utils'; |
12 | | -import {getIEVersion, ifEnvSupports, ifEnvSupportsWithDone, isEdge} from '../test-util'; |
| 12 | +import {getEdgeVersion, getIEVersion, ifEnvSupports, ifEnvSupportsWithDone, isEdge} from '../test-util'; |
13 | 13 |
|
14 | 14 | import Spy = jasmine.Spy; |
15 | 15 | declare const global: any; |
@@ -190,7 +190,7 @@ describe('Zone', function() { |
190 | 190 | 'onvrdisplayactivate', 'onvrdisplayblur', 'onvrdisplayconnect', |
191 | 191 | 'onvrdisplaydeactivate', 'onvrdisplaydisconnect', 'onvrdisplayfocus', |
192 | 192 | 'onvrdisplaypointerrestricted', 'onvrdisplaypointerunrestricted', |
193 | | - 'onorientationchange' |
| 193 | + 'onorientationchange', 'onerror' |
194 | 194 | ]); |
195 | 195 | }); |
196 | 196 |
|
@@ -390,6 +390,24 @@ describe('Zone', function() { |
390 | 390 | }; |
391 | 391 | expect(testFn).not.toThrow(); |
392 | 392 | })); |
| 393 | + |
| 394 | + it('window.onerror callback signiture should be (message, source, lineno, colno, error)', |
| 395 | + ifEnvSupportsWithDone(canPatchOnProperty(window, 'onerror'), function(done: DoneFn) { |
| 396 | + let testError = new Error('testError'); |
| 397 | + window.onerror = function( |
| 398 | + message: any, source?: string, lineno?: number, colno?: number, error?: any) { |
| 399 | + expect(message).toContain('testError'); |
| 400 | + if (getEdgeVersion() !== 14) { |
| 401 | + // Edge 14, error will be undefined. |
| 402 | + expect(error).toBe(testError); |
| 403 | + } |
| 404 | + setTimeout(done); |
| 405 | + return true; |
| 406 | + }; |
| 407 | + setTimeout(() => { |
| 408 | + throw testError; |
| 409 | + }, 100); |
| 410 | + })); |
393 | 411 | })); |
394 | 412 |
|
395 | 413 | describe('eventListener hooks', function() { |
|
0 commit comments