1'use strict';
2
3require('../common');
4const { strictEqual, deepStrictEqual } = require('assert');
5
6{
7  const domException = new DOMException('no cause', 'abc');
8  strictEqual(domException.name, 'abc');
9  strictEqual('cause' in domException, false);
10  strictEqual(domException.cause, undefined);
11}
12
13{
14  const domException = new DOMException('with undefined cause', { name: 'abc', cause: undefined });
15  strictEqual(domException.name, 'abc');
16  strictEqual('cause' in domException, true);
17  strictEqual(domException.cause, undefined);
18}
19
20{
21  const domException = new DOMException('with string cause', { name: 'abc', cause: 'foo' });
22  strictEqual(domException.name, 'abc');
23  strictEqual('cause' in domException, true);
24  strictEqual(domException.cause, 'foo');
25}
26
27{
28  const object = { reason: 'foo' };
29  const domException = new DOMException('with object cause', { name: 'abc', cause: object });
30  strictEqual(domException.name, 'abc');
31  strictEqual('cause' in domException, true);
32  deepStrictEqual(domException.cause, object);
33}
34