Checks that error.stack works correctly for custom Error subclasses { className : MyError description : MyError: custom message at :1:18 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : subtype : error type : object } { className : MyError description : MyError: foo at :1:18 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : subtype : error type : object } { className : ErrorWithCustomName description : NamedError: bar at :1:18 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : subtype : error type : object } { className : MyError description : MyError: custom message at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : preview : { description : MyError: custom message at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 overflow : false properties : [ [0] : { name : stack type : string value : Error at :1:23 at recurse (test…) at foo (test.js:8:3) at :1:1 } ] subtype : error type : object } subtype : error type : object } { className : MyError description : MyError: foo at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : preview : { description : MyError: foo at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 overflow : false properties : [ [0] : { name : stack type : string value : Error: foo at :1:23 at recurse …) at foo (test.js:8:3) at :1:1 } [1] : { name : message type : string value : foo } ] subtype : error type : object } subtype : error type : object } { className : ErrorWithCustomName description : NamedError: bar at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 objectId : preview : { description : NamedError: bar at :1:23 at recurse (test.js:4:10) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at recurse (test.js:3:23) at foo (test.js:8:3) at :1:1 overflow : false properties : [ [0] : { name : name type : string value : NamedError } [1] : { name : stack type : string value : NamedError: bar at :1:23 at rec…) at foo (test.js:8:3) at :1:1 } [2] : { name : message type : string value : bar } ] subtype : error type : object } subtype : error type : object }