• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Flags: --expose-internals
2'use strict';
3
4require('../common');
5const assert = require('assert');
6const util = require('internal/util');
7
8const createClassWrapper = util.createClassWrapper;
9
10class A {
11  constructor(a, b, c) {
12    this.a = a;
13    this.b = b;
14    this.c = c;
15  }
16}
17
18const B = createClassWrapper(A);
19
20assert.strictEqual(typeof B, 'function');
21assert(B(1, 2, 3) instanceof B);
22assert(B(1, 2, 3) instanceof A);
23assert(new B(1, 2, 3) instanceof B);
24assert(new B(1, 2, 3) instanceof A);
25assert.strictEqual(B.name, A.name);
26assert.strictEqual(B.length, A.length);
27
28const b = new B(1, 2, 3);
29assert.strictEqual(b.a, 1);
30assert.strictEqual(b.b, 2);
31assert.strictEqual(b.c, 3);
32