aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/embind/embind.test.js12
-rw-r--r--tests/embind/embind_test.cpp5
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/embind/embind.test.js b/tests/embind/embind.test.js
index ee80da0c..2a14ccde 100644
--- a/tests/embind/embind.test.js
+++ b/tests/embind/embind.test.js
@@ -1899,6 +1899,18 @@ module({
sh2.delete();
sh1.delete();
});
+
+ test("calling function that returns a StringHolder", function() {
+ var sh1 = new cm.StringHolder("Hello world");
+ var sh2 = cm.call_StringHolder_func(function() {
+ return sh1;
+ });
+ assert.equal("Hello world", sh1.get());
+ assert.equal("Hello world", sh2.get());
+ assert.false(sh1.isAliasOf(sh2));
+ sh2.delete();
+ sh1.delete();
+ });
});
});
diff --git a/tests/embind/embind_test.cpp b/tests/embind/embind_test.cpp
index f723f240..1d871924 100644
--- a/tests/embind/embind_test.cpp
+++ b/tests/embind/embind_test.cpp
@@ -2248,6 +2248,11 @@ StringHolder return_StringHolder_copy(val func) {
return func.as<StringHolder>();
}
+StringHolder call_StringHolder_func(val func) {
+ return func().as<StringHolder>();
+}
+
EMSCRIPTEN_BINDINGS(return_values) {
function("return_StringHolder_copy", &return_StringHolder_copy);
+ function("call_StringHolder_func", &call_StringHolder_func);
}