The property definition consumes ownership, so freeing the result object
is enough on later error paths.
Returned JS_EXCEPTION on property-definition failures instead of the
unrelated typed-array lookup result.
if (rc == -1) {
JS_FreeValue(ctx, obj);
JS_FreeValue(ctx, data);
- return ret;
+ return JS_EXCEPTION;
}
rc = JS_DefinePropertyValueStr(ctx, obj, "data", data, JS_PROP_ENUMERABLE);
if (rc == -1) {
JS_FreeValue(ctx, obj);
- JS_FreeValue(ctx, data);
- return ret;
+ return JS_EXCEPTION;
}
for (i = 0; i < src.length; i++) {
rc = JS_SetPropertyUint32(ctx, data, i, JS_NewInt32(ctx, src.start[i]));
if (rc == -1) {
JS_FreeValue(ctx, obj);
- JS_FreeValue(ctx, data);
- return ret;
+ return JS_EXCEPTION;
}
}