aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-internal-util-classwrapper.js
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2017-02-15 07:43:22 -0800
committerJames M Snell <jasnell@gmail.com>2017-02-17 10:37:32 -0800
commit4151ab398b8186f10056c4551edfa0204e529035 (patch)
tree45f347b19151803aee9c93b85195ff518546aadd /test/parallel/test-internal-util-classwrapper.js
parent804bb22e3b4d97fa8fd96141d18df7d83704c36f (diff)
downloadandroid-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.js31
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);