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