From 26cb6ccce6d7caa508483b818f7bcebd046b4cf8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 27 Sep 2021 07:47:21 -0300 Subject: [PATCH] feat: support null value returns for toValue (#325) Add nullValue as the return value for the nil case in toValue. Co-authored-by: Ryan Macleod --- reflect_test.go | 2 +- value.go | 3 +-- value_test.go | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reflect_test.go b/reflect_test.go index 0d286ce..258d361 100644 --- a/reflect_test.go +++ b/reflect_test.go @@ -228,7 +228,7 @@ func Test_reflectStruct(t *testing.T) { test(` ret = abc.FuncReturn2(); - if (ret && ret.length && ret.length == 2 && ret[0] == "def" && ret[1] === undefined) { + if (ret && ret.length && ret.length == 2 && ret[0] == "def" && ret[1] === null) { true; } else { false; diff --git a/value.go b/value.go index 90c1406..1ce4b84 100644 --- a/value.go +++ b/value.go @@ -325,8 +325,7 @@ func toValue(value interface{}) Value { case _result: return Value{valueResult, value} case nil: - // TODO Ugh. - return Value{} + return nullValue case reflect.Value: for value.Kind() == reflect.Ptr { // We were given a pointer, so we'll drill down until we get a non-pointer diff --git a/value_test.go b/value_test.go index f0c6ef0..c4a2893 100644 --- a/value_test.go +++ b/value_test.go @@ -39,7 +39,8 @@ func TestToValue(t *testing.T) { vm := tester.vm value, _ := vm.ToValue(nil) - is(value, "undefined") + is(value, "null") + is(value, nullValue) value, _ = vm.ToValue((*byte)(nil)) is(value, "undefined")