diff options
author | James M Snell <jasnell@gmail.com> | 2017-02-15 07:43:22 -0800 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-02-17 10:37:32 -0800 |
commit | 4151ab398b8186f10056c4551edfa0204e529035 (patch) | |
tree | 45f347b19151803aee9c93b85195ff518546aadd /test/parallel/test-internal-util-classwrapper.js | |
parent | 804bb22e3b4d97fa8fd96141d18df7d83704c36f (diff) | |
download | android-node-v8-4151ab398b8186f10056c4551edfa0204e529035.tar.gz android-node-v8-4151ab398b8186f10056c4551edfa0204e529035.tar.bz2 android-node-v8-4151ab398b8186f10056c4551edfa0204e529035.zip |
util: add createClassWrapper to internal/util
Utility function for wrapping an ES6 class with a constructor
function that does not require the new keyword
PR-URL: https://github.com/nodejs/node/pull/11391
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Diffstat (limited to 'test/parallel/test-internal-util-classwrapper.js')
-rw-r--r-- | test/parallel/test-internal-util-classwrapper.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/parallel/test-internal-util-classwrapper.js b/test/parallel/test-internal-util-classwrapper.js new file mode 100644 index 0000000000..52b3c2b0a9 --- /dev/null +++ b/test/parallel/test-internal-util-classwrapper.js @@ -0,0 +1,31 @@ +// Flags: --expose-internals +'use strict'; + +require('../common'); +const assert = require('assert'); +const util = require('internal/util'); + +const createClassWrapper = util.createClassWrapper; + +class A { + constructor(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } +} + +const B = createClassWrapper(A); + +assert.strictEqual(typeof B, 'function'); +assert(B(1, 2, 3) instanceof B); +assert(B(1, 2, 3) instanceof A); +assert(new B(1, 2, 3) instanceof B); +assert(new B(1, 2, 3) instanceof A); +assert.strictEqual(B.name, A.name); +assert.strictEqual(B.length, A.length); + +const b = new B(1, 2, 3); +assert.strictEqual(b.a, 1); +assert.strictEqual(b.b, 2); +assert.strictEqual(b.c, 3); |