diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c index 6db4d892b97..e5d6b2d49f1 100644 --- a/dlls/jscript/array.c +++ b/dlls/jscript/array.c @@ -774,6 +774,7 @@ static HRESULT ArrayConstr_value(DispatchEx *dispex, LCID lcid, WORD flags, DISP TRACE("\n"); switch(flags) { + case DISPATCH_METHOD: case DISPATCH_CONSTRUCT: { if(arg_cnt(dp) == 1 && V_VT((arg_var = get_arg(dp, 0))) == VT_I4) { if(V_I4(arg_var) < 0) { diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js index a6895e35b15..7e3df38c4bd 100644 --- a/dlls/jscript/tests/api.js +++ b/dlls/jscript/tests/api.js @@ -501,6 +501,9 @@ arr.length = 3; ok(arr.length === 3, "arr.length = " + arr.length); ok(arr.toString() === "1,,", "arr.toString() = " + arr.toString()); +arr = Array("a","b","c"); +ok(arr.toString() === "a,b,c", "arr.toString() = " + arr.toString()); + ok(arr.valueOf === Object.prototype.valueOf, "arr.valueOf !== Object.prototype.valueOf"); ok(arr === arr.valueOf(), "arr !== arr.valueOf");