Fix SWIGV8_AppendOutput for OUTPUT typemaps

Create array to append to if the existing return type is not void.

Closes #405
Closes #1121
This commit is contained in:
Olegs Jeremejevs 2017-10-08 12:59:53 +03:00 committed by William S Fulton
commit f7756be391

View file

@ -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);