jscript: Get rid of no longer needed expression eval entry.
This commit is contained in:
parent
5e6faaea12
commit
fecc2fcb5e
|
@ -829,7 +829,6 @@ static HRESULT compile_expression_noret(compiler_ctx_t *ctx, expression_t *expr,
|
|||
case EXPR_BXOR:
|
||||
return compile_binary_expression(ctx, (binary_expression_t*)expr, OP_xor);
|
||||
default:
|
||||
assert(expr->eval != compiled_expression_eval);
|
||||
return compile_interp_fallback(ctx, expr);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ static inline HRESULT stat_eval(script_ctx_t *ctx, statement_t *stat, return_typ
|
|||
|
||||
static inline HRESULT expr_eval(script_ctx_t *ctx, expression_t *expr, DWORD flags, jsexcept_t *ei, exprval_t *ret)
|
||||
{
|
||||
return expr->eval(ctx, expr, flags, ei, ret);
|
||||
return compiled_expression_eval(ctx, expr, flags, ei, ret);
|
||||
}
|
||||
|
||||
static HRESULT stack_push(exec_ctx_t *ctx, VARIANT *v)
|
||||
|
@ -3168,12 +3168,11 @@ HRESULT compiled_expression_eval(script_ctx_t *ctx, expression_t *expr, DWORD fl
|
|||
|
||||
TRACE("\n");
|
||||
|
||||
hres = compile_subscript(ctx->exec_ctx->parser, expr, !(flags & EXPR_NOVAL), &expr->instr_off);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
if(expr->instr_off == -1) {
|
||||
hres = compile_subscript(ctx->exec_ctx->parser, expr, !(flags & EXPR_NOVAL), &expr->instr_off);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
}
|
||||
|
||||
if(expr->eval == compiled_expression_eval)
|
||||
expr->eval = interp_expression_eval;
|
||||
|
||||
return expr->eval(ctx, expr, flags, ei, ret);
|
||||
return interp_expression_eval(ctx, expr, flags, ei, ret);
|
||||
}
|
||||
|
|
|
@ -469,11 +469,8 @@ typedef enum {
|
|||
EXPR_LITERAL
|
||||
} expression_type_t;
|
||||
|
||||
typedef HRESULT (*expression_eval_t)(script_ctx_t*,expression_t*,DWORD,jsexcept_t*,exprval_t*);
|
||||
|
||||
struct _expression_t {
|
||||
expression_type_t type;
|
||||
expression_eval_t eval;
|
||||
unsigned instr_off;
|
||||
};
|
||||
|
||||
|
|
|
@ -1303,73 +1303,12 @@ static expression_t *new_function_expression(parser_ctx_t *ctx, const WCHAR *ide
|
|||
return &ret->expr;
|
||||
}
|
||||
|
||||
static const expression_eval_t expression_eval_table[] = {
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval,
|
||||
compiled_expression_eval
|
||||
};
|
||||
|
||||
static void *new_expression(parser_ctx_t *ctx, expression_type_t type, size_t size)
|
||||
{
|
||||
expression_t *ret = parser_alloc(ctx, size ? size : sizeof(*ret));
|
||||
|
||||
ret->type = type;
|
||||
ret->eval = expression_eval_table[type];
|
||||
ret->instr_off = -1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue