jscript: Throw TypeError in call_expression_eval.

This commit is contained in:
Piotr Caban 2009-07-20 18:18:12 +02:00 committed by Alexandre Julliard
parent 789afcdc1b
commit f89fbb9b48
4 changed files with 6 additions and 5 deletions

View File

@ -1539,11 +1539,8 @@ HRESULT call_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags,
if(SUCCEEDED(hres)) {
switch(exprval.type) {
case EXPRVAL_VARIANT:
if(V_VT(&exprval.u.var) != VT_DISPATCH) {
FIXME("throw TypeError\n");
hres = E_NOTIMPL;
break;
}
if(V_VT(&exprval.u.var) != VT_DISPATCH)
return throw_type_error(ctx->var_disp->ctx, ei, IDS_NO_PROPERTY, NULL);
hres = disp_call(V_DISPATCH(&exprval.u.var), DISPID_VALUE, ctx->parser->script->lcid,
DISPATCH_METHOD, &dp, flags & EXPR_NOVAL ? NULL : &var, ei, NULL/*FIXME*/);

View File

@ -22,6 +22,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_NO_PROPERTY "Object doesn't support this property or method"
IDS_ARG_NOT_OPT "Argument not optional"
IDS_NOT_DATE "'[object]' is not a date object"
IDS_NOT_BOOL "Boolean object expected"

View File

@ -18,6 +18,7 @@
#include <windef.h>
#define IDS_NO_PROPERTY 0x01B6
#define IDS_ARG_NOT_OPT 0x01c1
#define IDS_NOT_DATE 0x138E
#define IDS_NOT_BOOL 0x1392

View File

@ -1300,5 +1300,7 @@ function exception_test(func, type) {
exception_test(function() {arr.toString = Date.prototype.toString; arr.toString();}, "TypeError");
exception_test(function() {Array(-3);}, "RangeError");
exception_test(function() {arr.toString = Boolean.prototype.toString; arr.toString();}, "TypeError");
exception_test(function() {date.setTime();}, "TypeError");
exception_test(function() {arr.test();}, "TypeError");
reportSuccess();