diff options
Diffstat (limited to 'src/ngMock/angular-mocks.js')
| -rw-r--r-- | src/ngMock/angular-mocks.js | 18 | 
1 files changed, 17 insertions, 1 deletions
| diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index fb7ef057..b53b4e02 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -2079,6 +2079,20 @@ if(window.jasmine || window.mocha) {     *     * @param {...Function} fns any number of functions which will be injected using the injector.     */ + + + +  var ErrorAddingDeclarationLocationStack = function(e, errorForStack) { +    this.message = e.message; +    this.name = e.name; +    if (e.line) this.line = e.line; +    if (e.sourceId) this.sourceId = e.sourceId; +    if (e.stack && errorForStack) +      this.stack = e.stack + '\n' + errorForStack.stack; +    if (e.stackArray) this.stackArray = e.stackArray; +  }; +  ErrorAddingDeclarationLocationStack.prototype.toString = Error.prototype.toString; +    window.inject = angular.mock.inject = function() {      var blockFns = Array.prototype.slice.call(arguments, 0);      var errorForStack = new Error('Declaration Location'); @@ -2099,7 +2113,9 @@ if(window.jasmine || window.mocha) {            injector.invoke(blockFns[i] || angular.noop, this);            /* jshint +W040 */          } catch (e) { -          if(e.stack && errorForStack) e.stack +=  '\n' + errorForStack.stack; +          if (e.stack && errorForStack) { +            throw new ErrorAddingDeclarationLocationStack(e, errorForStack); +          }            throw e;          } finally {            errorForStack = null; | 
