aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/return64bit/test.c6
-rw-r--r--tests/return64bit/testbind.js18
-rw-r--r--tests/return64bit/testbindend.js2
-rw-r--r--tests/return64bit/testbindstart.js3
4 files changed, 29 insertions, 0 deletions
diff --git a/tests/return64bit/test.c b/tests/return64bit/test.c
new file mode 100644
index 00000000..e75ee5c1
--- /dev/null
+++ b/tests/return64bit/test.c
@@ -0,0 +1,6 @@
+
+// This is just a trivial test function, the key bit of interest is that it returns a 64 bit long.
+long long test() {
+ long long x = ((long long)1234 << 32) + 5678;
+ return x;
+}
diff --git a/tests/return64bit/testbind.js b/tests/return64bit/testbind.js
new file mode 100644
index 00000000..f2cc0e7b
--- /dev/null
+++ b/tests/return64bit/testbind.js
@@ -0,0 +1,18 @@
+// This code represents a simple native JavaScript binding to a test C function
+// that returns a 64 bit long. Notice that the least significant 32 bits are
+// returned in the normal return value, but the most significant 32 bits are
+// returned via the accessor method Runtime.getTempRet0()
+
+var Module = {
+ 'noExitRuntime' : true
+};
+
+Module['runtest'] = function() {
+ var low = _test();
+ var high = Runtime.getTempRet0();
+
+ console.log("low = " + low);
+ console.log("high = " + high);
+};
+
+
diff --git a/tests/return64bit/testbindend.js b/tests/return64bit/testbindend.js
new file mode 100644
index 00000000..2218f14d
--- /dev/null
+++ b/tests/return64bit/testbindend.js
@@ -0,0 +1,2 @@
+
+})(); // End of self calling lambda used to wrap library.
diff --git a/tests/return64bit/testbindstart.js b/tests/return64bit/testbindstart.js
new file mode 100644
index 00000000..4956806b
--- /dev/null
+++ b/tests/return64bit/testbindstart.js
@@ -0,0 +1,3 @@
+
+(function() { // Start of self-calling lambda used to avoid polluting global namespace.
+