diff options
author | Olegs Jeremejevs <olegs@jeremejevs.com> | 2017-10-08 12:59:53 +0300 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2021-02-28 20:46:38 +0000 |
commit | f7756be391944444252261e88b4a8d754f6250e3 (patch) | |
tree | 5f5610833d9e05e0a2fa7ae75ef63d80f18ce47c /Lib/javascript | |
parent | 59b780efed9ec3257e7494822609d9518f5a04bc (diff) | |
download | swig-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.swg | 8 |
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); |