From b1981faf9af2c04364f3a74082157c055b971a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Mon, 10 Apr 2017 12:21:04 +0200 Subject: [PATCH 1/5] Revert "feat(error): Remove all Zone frames from stack (#693)" This reverts commit 8142c3bb5e6046390c420ac5c1cc7f04f55e8d46. From 91ba8346235728ee8a3b66d0620d861c7b29a786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Mon, 10 Apr 2017 12:21:04 +0200 Subject: [PATCH 2/5] Revert "fix(error): fix #706, handleError when onHasTask throw error (#709)" This reverts commit f514c11f0362b239f6aac33a15435a3345923348. From d4919cd5459cfcf94e3102a1f9788ec8cb6543cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Mon, 10 Apr 2017 12:21:04 +0200 Subject: [PATCH 3/5] Revert "fix(patch): fix #707, should not try to patch non configurable property (#717)" This reverts commit 44d507dc5b9effd5fb4333ea1aea2aa84d2a7f59. From 49411410db023ba78f3a5cad2c2f729cd35541d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Mon, 10 Apr 2017 12:21:04 +0200 Subject: [PATCH 4/5] Revert "fix(patch): fix #719, window onproperty callback this is undefined (#723)" This reverts commit 9f4db3ccac6115f14ec368eff5e02bc62ef499ac. From 6ca342ad113681c2114f281524394fd88a33014a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=A1ko=20Hevery?= Date: Mon, 10 Apr 2017 12:21:04 +0200 Subject: [PATCH 5/5] Revert "fix(core): fix #405, refine the error message when zone.js already loaded. (#728)" This reverts commit f3a3af3d61594d3b3831f3fb5d66ecb3e06ce46e. --- lib/zone.ts | 36 +++--------------------------------- test/common/zone.spec.ts | 14 +------------- 2 files changed, 4 insertions(+), 46 deletions(-) diff --git a/lib/zone.ts b/lib/zone.ts index 2d9c2ebbc..9deae5ce7 100644 --- a/lib/zone.ts +++ b/lib/zone.ts @@ -609,19 +609,7 @@ type AmbientZoneDelegate = ZoneDelegate; const Zone: ZoneType = (function(global: any) { if (global['Zone']) { - let zoneAlreadyLoadedMessage: string = 'Zone already loaded.'; - // try to findout the already loaded zone.js script file - // require the loaded zone.js version to be newer than 0.8.6 - try { - const LoadedZone: any = global['Zone']; - const scriptFileName: string = LoadedZone['__zone_symbol__scriptFileName']; - if (scriptFileName) { - zoneAlreadyLoadedMessage = - 'Zone already loaded. The loaded Zone.js script file seems to be ' + scriptFileName; - } - } catch (error) { - } - throw new Error(zoneAlreadyLoadedMessage); + throw new Error('Zone already loaded.'); } const NO_ZONE = {name: 'NO ZONE'}; @@ -636,17 +624,12 @@ const Zone: ZoneType = (function(global: any) { static assertZonePatched() { if (global.Promise !== ZoneAwarePromise) { - // try to findout the already loaded zone.js script file - // require the loaded zone.js version to be newer than 0.8.6 - const scriptFileName: string = (Zone as any)[__symbol__('scriptFileName')]; - const scriptFileErrorMessage: string = - scriptFileName ? 'the loaded Zone.js script file seems to be ' + scriptFileName : ''; throw new Error( 'Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + - 'If you must load one, do so before loading zone.js.)' + scriptFileErrorMessage); + 'If you must load one, do so before loading zone.js.)'); } } @@ -1809,24 +1792,11 @@ const Zone: ZoneType = (function(global: any) { // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24) // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24 // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24 - let frameParts: string[] = frame.split('('); - let fnNamePart: string = frameParts[0]; - - let fnName: string = fnNamePart.split('@')[0]; + let fnName: string = frame.split('(')[0].split('@')[0]; let frameType = FrameType.transition; if (fnName.indexOf('ZoneAwareError') !== -1) { zoneAwareFrame1 = frame; zoneAwareFrame2 = frame.replace('Error.', ''); - - // try to find the filename where zone.js live with - let fileNamePart1: string = frameParts.length > 1 ? frameParts[1] : fnNamePart; - let fileNameParts: string[] = fileNamePart1.split('@'); - let fileNamePart2: string = - fileNameParts.length > 1 ? fileNameParts[1] : fileNameParts[0]; - // Keep a script file name in Zone, so when zone.js report 'already loaded' - // error, it can report which file include the loaded zone.js - (Zone as any)[__symbol__('scriptFileName')] = fileNamePart2; - blackListedStackFrames[zoneAwareFrame2] = FrameType.blackList; } if (fnName.indexOf('runGuarded') !== -1) { diff --git a/test/common/zone.spec.ts b/test/common/zone.spec.ts index 68c04037b..e4533cbd4 100644 --- a/test/common/zone.spec.ts +++ b/test/common/zone.spec.ts @@ -328,24 +328,12 @@ describe('Zone', function() { it('should throw when Promise has been patched', () => { class WrongPromise {} - const errorMessage = - 'Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + - 'has been overwritten.'; - const errorScriptMessage = 'the loaded Zone.js script file seems to be'; const ZoneAwarePromise = global.Promise; global.Promise = WrongPromise; try { expect(ZoneAwarePromise).toBeTruthy(); - try { - Zone.assertZonePatched(); - } catch (error) { - expect(error.message).toContain(errorMessage); - expect(error.message).toContain(errorScriptMessage); - const idx = error.message.lastIndexOf(errorScriptMessage); - const fileName: string = error.message.slice(idx + errorScriptMessage.length); - expect(fileName).toContain('zone.js'); - } + expect(() => Zone.assertZonePatched()).toThrow(); } finally { // restore it. global.Promise = ZoneAwarePromise;