1// Flags: --expose-internals
2'use strict';
3require('../common');
4const assert = require('assert');
5const { E, SystemError, codes } = require('internal/errors');
6
7let stackTraceLimit;
8Reflect.defineProperty(Error, 'stackTraceLimit', {
9  get() { return stackTraceLimit; },
10  set(value) { stackTraceLimit = value; },
11});
12
13E('ERR_TEST', 'custom message', SystemError);
14const { ERR_TEST } = codes;
15
16const ctx = {
17  code: 'ETEST',
18  message: 'code message',
19  syscall: 'syscall_test',
20  path: '/str',
21  dest: '/str2'
22};
23assert.throws(
24  () => { throw new ERR_TEST(ctx); },
25  {
26    code: 'ERR_TEST',
27    name: 'SystemError',
28    info: ctx,
29  }
30);
31