Ignore assignment to Error#stack if it is readonly property

`Error#stack` may be an readonly property in some environments
such as PhantomJS 1.9.2 and Safari 7.0.
This commit is contained in:
Ryunosuke SATO 2015-03-10 04:05:53 +09:00
parent b1252b865b
commit 9d7e953451

View File

@ -40,7 +40,13 @@ export default function (opts, code, callback) {
message += frame;
}
if (err.stack) err.stack = err.stack.replace(err.message, message);
if (err.stack) {
var newStack = err.stack.replace(err.message, message);
try {
err.stack = newStack;
} catch (e) { /* `err.stack` may be a readonly property in some environments. */ }
}
err.message = message;
}