20 lines
573 B
JavaScript
20 lines
573 B
JavaScript
/*
|
|
* Ensure Error .fileName, .lineNumber, and .stack are not directly writable,
|
|
* but can be written using Object.defineProperty(). This matches Duktape
|
|
* 1.3.0 and prior.
|
|
*
|
|
* See: https://github.com/svaarala/duktape/pull/390.
|
|
*/
|
|
|
|
(function () {
|
|
var err = new Error('test');
|
|
err.fileName = 999;
|
|
if (err.fileName !== 999) { return; } // already non-writable
|
|
|
|
var fn = new Function(''); // nop
|
|
Object.defineProperties(Error.prototype, {
|
|
fileName: { set: fn },
|
|
lineNumber: { set: fn },
|
|
stack: { set: fn }
|
|
});
|
|
})();
|