Commit f89fbb9b authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

jscript: Throw TypeError in call_expression_eval.

parent 789afcdc
......@@ -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();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment