diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 3ed24502..8dc430ad 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -1992,7 +1992,13 @@ getJasmineRequireObj().SpyRegistry = function(j$) { throw new Error(methodName + ' has already been spied upon'); } - var descriptor = Object.getOwnPropertyDescriptor(obj, methodName); + var descriptor; + try { + descriptor = Object.getOwnPropertyDescriptor(obj, methodName); + } catch(e) { + // IE 8 doesn't support `definePropery` on non-DOM nodes + } + if (descriptor && !(descriptor.writable || descriptor.set)) { throw new Error(methodName + ' is not declared writable or has no setter'); } diff --git a/src/core/SpyRegistry.js b/src/core/SpyRegistry.js index 65769e95..25c9b343 100644 --- a/src/core/SpyRegistry.js +++ b/src/core/SpyRegistry.js @@ -22,7 +22,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) { throw new Error(methodName + ' has already been spied upon'); } - var descriptor = undefined; + var descriptor; try { descriptor = Object.getOwnPropertyDescriptor(obj, methodName); } catch(e) {