From 8ecb632d70fa2e71f4dc1266d5e69c523d99fb0b Mon Sep 17 00:00:00 2001 From: vsavkin Date: Wed, 22 Jul 2015 11:59:16 -0700 Subject: [PATCH] feat(lang): added "context" to BaseException --- modules/angular2/src/core/application.ts | 5 +++++ modules/angular2/src/facade/lang.dart | 5 +++-- modules/angular2/src/facade/lang.ts | 13 +++++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/modules/angular2/src/core/application.ts b/modules/angular2/src/core/application.ts index 9988f1b68c..0d2d9f2768 100644 --- a/modules/angular2/src/core/application.ts +++ b/modules/angular2/src/core/application.ts @@ -145,6 +145,11 @@ function _createNgZone(givenReporter: Function): NgZone { var defaultErrorReporter = (exception, stackTrace) => { var longStackTrace = ListWrapper.join(stackTrace, "\n\n-----async gap-----\n"); DOM.logError(`${exception}\n\n${longStackTrace}`); + + if (exception instanceof BaseException && isPresent(exception.context)) { + print("Error Context:"); + print(exception.context); + } throw exception; }; diff --git a/modules/angular2/src/facade/lang.dart b/modules/angular2/src/facade/lang.dart index 9c2ff18820..7271a26ea1 100644 --- a/modules/angular2/src/facade/lang.dart +++ b/modules/angular2/src/facade/lang.dart @@ -183,11 +183,12 @@ class FunctionWrapper { } class BaseException extends Error { + final dynamic context; final String message; final originalException; final originalStack; - BaseException([this.message, this.originalException, this.originalStack]); + BaseException([this.message, this.originalException, this.originalStack, this.context]); String toString() { return this.message; @@ -225,7 +226,7 @@ bool isJsObject(o) { var _assertionsEnabled = null; bool assertionsEnabled() { - if (_assertionsEnabled == null) { + if (_assertionsEnabled == null) { try { assert(false); _assertionsEnabled = false; diff --git a/modules/angular2/src/facade/lang.ts b/modules/angular2/src/facade/lang.ts index 82b4c6f6e8..4dbe66cada 100644 --- a/modules/angular2/src/facade/lang.ts +++ b/modules/angular2/src/facade/lang.ts @@ -11,11 +11,18 @@ export function getTypeNameForDebugging(type: Type): string { export class BaseException extends Error { stack; - constructor(public message?: string, public originalException?, public originalStack?) { + constructor(public message?: string, private _originalException?, private _originalStack?, + private _context?) { super(message); this.stack = (new Error(message)).stack; } + get originalException(): any { return this._originalException; } + + get originalStack(): any { return this._originalStack; } + + get context(): any { return this._context; } + toString(): string { return this.message; } } @@ -118,7 +125,9 @@ export function stringify(token): string { return token.name; } - return token.toString(); + var res = token.toString(); + var newLineIndex = res.indexOf("\n"); + return (newLineIndex === -1) ? res : res.substring(0, newLineIndex); } export class StringWrapper {