Robert Wilhelm : vbscript: Implement IsArray.
Module: wine Branch: master Commit: b72d8118da5456411cf9ddde458d7d4a7816d570 URL: https://source.winehq.org/git/wine.git/?a=commit;h=b72d8118da5456411cf9ddde4... Author: Robert Wilhelm <robert.wilhelm(a)gmx.net> Date: Mon Aug 24 11:57:20 2020 +0200 vbscript: Implement IsArray. Signed-off-by: Robert Wilhelm <robert.wilhelm(a)gmx.net> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/vbscript/global.c | 7 +++++-- dlls/vbscript/tests/api.vbs | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 00f74104de..d2fadb3422 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -961,8 +961,11 @@ static HRESULT Global_IsNumeric(BuiltinDisp *This, VARIANT *arg, unsigned args_c static HRESULT Global_IsArray(BuiltinDisp *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + TRACE("(%s)\n", debugstr_variant(arg)); + + assert(args_cnt == 1); + + return return_bool(res, V_ISARRAY(arg)); } static HRESULT Global_IsObject(BuiltinDisp *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs index 787da7cd71..6add0579e8 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -223,6 +223,21 @@ arr(0) = 2 arr(1) = 3 Call ok(not isNumeric(arr), "isNumeric(arr) is not true?") +Call ok(isArray(arr), "isArray(arr) is not true?") +x = Array() +Call ok(isArray(arr), "isArray(Array()) is not true?") +Call ok(not isArray(Empty), "isArray(empty) is true?") +Call ok(not isArray(Null), "isArray(Null) is true?") +Call ok(not isArray(42), "isArray(42) is true?") +Call ok(not isArray(CSng(3242.4)), "isArray(CSng(3242.4)) is true?") +Call ok(not isArray(CCur(32768.4)), "isArray(CCur(32768.4)) is true?") +Call ok(not isArray("44"), "isArray(""44"") is true?") +Call ok(not isArray("rwrf"), "isArray(""rwrf"") is true?") +Call ok(not isArray(Nothing), "isArray(Nothing) is true?") +Call ok(not isArray(New EmptyClass), "isArray(New EmptyClass) is true?") +Call ok(not isArray(true), "isArray(true) is true?") +Call ok(not isArray(CByte(32)), "isArray(CByte(32)) is true?") + Call ok(getVT(Array()) = "VT_ARRAY|VT_VARIANT", "getVT(Array()) = " & getVT(Array())) x = Array("a1", 2, "a3") Call ok(getVT(x) = "VT_ARRAY|VT_VARIANT*", "getVT(array) = " & getVT(x))
participants (1)
-
Alexandre Julliard