From b22bf9a031298e16ee9d336c8eec56bf638cd04f Mon Sep 17 00:00:00 2001 From: "Dan Hansen and Davis W. Frank" Date: Fri, 1 Mar 2013 10:43:09 -0800 Subject: [PATCH] Protect against a FF bug: Exceptions don't always have a message property even though they were instantiated with one. Using Error#toString alleviates this --- lib/jasmine-core/jasmine.js | 2 +- spec/core/SpecSpec.js | 7 +++++++ src/core/Spec.js | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 682e6930..1aa5794c 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -1717,7 +1717,7 @@ jasmine.Spec.prototype.getFullName = function() { jasmine.Spec.pendingSpecExceptionMessage = "=> marked Pending"; jasmine.Spec.isPendingSpecException = function(e) { - return e.message.indexOf(jasmine.Spec.pendingSpecExceptionMessage) === 0; + return e.toString().indexOf(jasmine.Spec.pendingSpecExceptionMessage) !== -1; };jasmine.Suite = function(attrs) { this.env = attrs.env; this.id = attrs.id; diff --git a/spec/core/SpecSpec.js b/spec/core/SpecSpec.js index 422d97b9..ade1b801 100644 --- a/spec/core/SpecSpec.js +++ b/spec/core/SpecSpec.js @@ -6,6 +6,13 @@ describe("Spec", function() { expect(jasmine.Spec.isPendingSpecException(e)).toBe(true); }); + it("#isPendingSpecException returns true for a pending spec exception (protect against FF bug)", function() { + var e = new Error(jasmine.Spec.pendingSpecExceptionMessage); + delete e.message; + + expect(jasmine.Spec.isPendingSpecException(e)).toBe(true); + }); + it("#isPendingSpecException returns true for a pending spec exception", function() { var e = new Error("foo"); diff --git a/src/core/Spec.js b/src/core/Spec.js index e90b4cf5..e90f72fa 100644 --- a/src/core/Spec.js +++ b/src/core/Spec.js @@ -114,5 +114,5 @@ jasmine.Spec.prototype.getFullName = function() { jasmine.Spec.pendingSpecExceptionMessage = "=> marked Pending"; jasmine.Spec.isPendingSpecException = function(e) { - return e.message.indexOf(jasmine.Spec.pendingSpecExceptionMessage) === 0; + return e.toString().indexOf(jasmine.Spec.pendingSpecExceptionMessage) !== -1; }; \ No newline at end of file