| /* |
| * 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 } |
| }); |
| })(); |