%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// Flags: --expose-internals 'use strict'; require('../common'); const assert = require('assert'); const { types } = require('util'); const { isError } = require('internal/util'); const vm = require('vm'); // Special cased errors. Test the internal function which is used in // `util.inspect()`, the `repl` and maybe more. This verifies that errors from // different realms, and non native instances of error are properly detected as // error while definitely false ones are not detected. This is different than // the public `util.isError()` function which falsy detects the fake errors as // actual errors. { const fake = { [Symbol.toStringTag]: 'Error' }; assert(!types.isNativeError(fake)); assert(!(fake instanceof Error)); assert(!isError(fake)); const err = new Error('test'); const newErr = Object.create( Object.getPrototypeOf(err), Object.getOwnPropertyDescriptors(err)); Object.defineProperty(err, 'message', { value: err.message }); assert(types.isNativeError(err)); assert(!types.isNativeError(newErr)); assert(newErr instanceof Error); assert(isError(newErr)); const context = vm.createContext({}); const differentRealmErr = vm.runInContext('new Error()', context); assert(types.isNativeError(differentRealmErr)); assert(!(differentRealmErr instanceof Error)); assert(isError(differentRealmErr)); }