summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--builtin.c2
-rw-r--r--jv.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/builtin.c b/builtin.c
index 721cd3fc..371df372 100644
--- a/builtin.c
+++ b/builtin.c
@@ -493,6 +493,8 @@ static const struct cfunction function_list[] = {
{(cfunction_ptr)f_tonumber, "tonumber", 1},
{(cfunction_ptr)f_tostring, "tostring", 1},
{(cfunction_ptr)f_keys, "keys", 1},
+ {(cfunction_ptr)jv_string_explode, "explode", 1},
+ {(cfunction_ptr)jv_string_implode, "implode", 1},
{(cfunction_ptr)jv_setpath, "setpath", 3}, // FIXME typechecking
{(cfunction_ptr)jv_getpath, "getpath", 2},
{(cfunction_ptr)jv_delpaths, "delpaths", 2},
diff --git a/jv.c b/jv.c
index a1e98026..d9a908ce 100644
--- a/jv.c
+++ b/jv.c
@@ -618,7 +618,7 @@ jv jv_string_implode(jv j) {
assert(len >= 0);
for (i = 0; i < len; i++) {
- jv n = jv_array_get(j, i);
+ jv n = jv_array_get(jv_copy(j), i);
assert(jv_get_kind(n) == JV_KIND_NUMBER);
s = jv_string_append_codepoint(s, jv_number_value(n));
}