summaryrefslogtreecommitdiff
path: root/Lib/javascript
diff options
context:
space:
mode:
authorOlegs Jeremejevs <olegs@jeremejevs.com>2017-10-08 12:59:53 +0300
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2021-02-28 20:46:38 +0000
commitf7756be391944444252261e88b4a8d754f6250e3 (patch)
tree5f5610833d9e05e0a2fa7ae75ef63d80f18ce47c /Lib/javascript
parent59b780efed9ec3257e7494822609d9518f5a04bc (diff)
downloadswig-f7756be391944444252261e88b4a8d754f6250e3.tar.gz
Fix SWIGV8_AppendOutput for OUTPUT typemaps
Create array to append to if the existing return type is not void. Closes #405 Closes #1121
Diffstat (limited to 'Lib/javascript')
-rw-r--r--Lib/javascript/v8/javascriptrun.swg8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
index f35329acd..6dd32f49e 100644
--- a/Lib/javascript/v8/javascriptrun.swg
+++ b/Lib/javascript/v8/javascriptrun.swg
@@ -702,6 +702,14 @@ SWIGV8_VALUE SWIGV8_AppendOutput(SWIGV8_VALUE result, SWIGV8_VALUE obj) {
if (result->IsUndefined()) {
result = SWIGV8_ARRAY_NEW();
+ } else if (!result->IsArray()) {
+#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903)
+ v8::Handle<v8::Array> tmparr = SWIGV8_ARRAY_NEW();
+#else
+ v8::Local<v8::Array> tmparr = SWIGV8_ARRAY_NEW();
+#endif
+ tmparr->Set(0, result);
+ result = tmparr;
}
SWIGV8_ARRAY arr = SWIGV8_ARRAY::Cast(result);