jscript: Throw TypeError in call_expression_eval.
This commit is contained in:
parent
789afcdc1b
commit
f89fbb9b48
|
@ -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*/);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue