aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js')
-rw-r--r--Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js b/Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js
new file mode 100644
index 000000000..11c538c88
--- /dev/null
+++ b/Examples/test-suite/javascript/cpp11_variadic_function_templates_runme.js
@@ -0,0 +1,23 @@
+var cpp11_variadic_function_templates = require("cpp11_variadic_function_templates");
+
+const {A, B, C, D, variadicmix1} = cpp11_variadic_function_templates;
+
+ec = new cpp11_variadic_function_templates.EmplaceContainer();
+ec.emplace(new A());
+ec.emplace(new A(), new B());
+ec.emplace(new A(), new B(), new C());
+ec.emplace(new A(), new B(), new C(), new D());
+
+function check(expected, got) {
+ if (expected != got) {
+ throw new Error("failed: {} != {}".format(expected, got));
+ }
+}
+a = new A();
+b = new B();
+c = new C();
+check(variadicmix1(), 20);
+check(variadicmix1(a), 20);
+check(variadicmix1(a, b), 10);
+check(variadicmix1(a, b, c), 20);
+check(variadicmix1(11, 22), 10);