Module: wine Branch: master Commit: a0170ad7f9719ad60a8c80629b9a1e8f982ea95c URL: http://source.winehq.org/git/wine.git/?a=commit;h=a0170ad7f9719ad60a8c80629b...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Sep 9 01:27:38 2008 +0200
jscript: Added Function.length implementation.
---
dlls/jscript/function.c | 17 +++++++++++++++-- dlls/jscript/global.c | 2 +- dlls/jscript/tests/lang.js | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c index 13a6711..56895a1 100644 --- a/dlls/jscript/function.c +++ b/dlls/jscript/function.c @@ -42,8 +42,21 @@ static const WCHAR isPrototypeOfW[] = {'i','s','P','r','o','t','o','t','y','p',' static HRESULT Function_length(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp) { - FIXME("\n"); - return E_NOTIMPL; + FunctionInstance *This = (FunctionInstance*)dispex; + + TRACE("%p %d\n", This, This->length); + + switch(flags) { + case DISPATCH_PROPERTYGET: + V_VT(retv) = VT_I4; + V_I4(retv) = This->length; + break; + default: + FIXME("unimplemented flags %x\n", flags); + return E_NOTIMPL; + } + + return S_OK; }
static HRESULT Function_toString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c index 2032df5..b16ca8c 100644 --- a/dlls/jscript/global.c +++ b/dlls/jscript/global.c @@ -256,10 +256,10 @@ static const builtin_prop_t JSGlobal_props[] = { {NumberW, JSGlobal_Number, PROPF_CONSTR}, {ObjectW, JSGlobal_Object, PROPF_CONSTR}, {RegExpW, JSGlobal_RegExp, PROPF_CONSTR}, + {ScriptEngineW, JSGlobal_ScriptEngine, PROPF_METHOD}, {ScriptEngineBuildVersionW, JSGlobal_ScriptEngineBuildVersion, PROPF_METHOD}, {ScriptEngineMajorVersionW, JSGlobal_ScriptEngineMajorVersion, PROPF_METHOD}, {ScriptEngineMinorVersionW, JSGlobal_ScriptEngineMinorVersion, PROPF_METHOD}, - {ScriptEngineW, JSGlobal_ScriptEngine, PROPF_METHOD}, {StringW, JSGlobal_String, PROPF_CONSTR}, {VBArrayW, JSGlobal_VBArray, PROPF_METHOD}, {escapeW, JSGlobal_escape, PROPF_METHOD}, diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index 92bf779..dd76691 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -38,4 +38,6 @@ ok(null !== undefined, "null !== undefined is false"); var trueVar = true; ok(trueVar, "trueVar is not true");
+ok(ScriptEngine.length === 0, "ScriptEngine.length is not 0"); + reportSuccess();