aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4runtime_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4runtime_p.h')
-rw-r--r--src/qml/jsruntime/qv4runtime_p.h403
1 files changed, 192 insertions, 211 deletions
diff --git a/src/qml/jsruntime/qv4runtime_p.h b/src/qml/jsruntime/qv4runtime_p.h
index ea4643f2a9..d1ca86fddd 100644
--- a/src/qml/jsruntime/qv4runtime_p.h
+++ b/src/qml/jsruntime/qv4runtime_p.h
@@ -117,13 +117,13 @@ void __qmljs_builtin_post_decrement_member(QV4::ExecutionContext *context, QV4::
void __qmljs_builtin_post_decrement_element(QV4::ExecutionContext *context, QV4::ValueRef result, const QV4::ValueRef base, const QV4::ValueRef index);
void Q_NORETURN __qmljs_builtin_rethrow(QV4::ExecutionContext *context);
-QV4::ExecutionContext *__qmljs_builtin_push_with_scope(const QV4::Value &o, QV4::ExecutionContext *ctx);
-QV4::ExecutionContext *__qmljs_builtin_push_catch_scope(QV4::String *exceptionVarName, const QV4::Value &exceptionValue, QV4::ExecutionContext *ctx);
+QV4::ExecutionContext *__qmljs_builtin_push_with_scope(const QV4::ValueRef o, QV4::ExecutionContext *ctx);
+QV4::ExecutionContext *__qmljs_builtin_push_catch_scope(QV4::String *exceptionVarName, const QV4::ValueRef exceptionValue, QV4::ExecutionContext *ctx);
QV4::ExecutionContext *__qmljs_builtin_pop_scope(QV4::ExecutionContext *ctx);
void __qmljs_builtin_declare_var(QV4::ExecutionContext *ctx, bool deletable, QV4::String *name);
-void __qmljs_builtin_define_property(QV4::ExecutionContext *ctx, const QV4::Value &object, QV4::String *name, QV4::Value *val);
+void __qmljs_builtin_define_property(QV4::ExecutionContext *ctx, const QV4::ValueRef object, QV4::String *name, QV4::ValueRef val);
void __qmljs_builtin_define_array(QV4::ExecutionContext *ctx, QV4::ValueRef array, QV4::Value *values, uint length);
-void __qmljs_builtin_define_getter_setter(QV4::ExecutionContext *ctx, const QV4::Value &object, QV4::String *name, const QV4::Value *getter, const QV4::Value *setter);
+void __qmljs_builtin_define_getter_setter(QV4::ExecutionContext *ctx, const QV4::ValueRef object, QV4::String *name, const QV4::ValueRef getter, const QV4::ValueRef setter);
void __qmljs_builtin_define_object_literal(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value *args, int classId);
void __qmljs_builtin_setup_arguments_object(ExecutionContext *ctx, QV4::ValueRef result);
@@ -140,34 +140,34 @@ QV4::String *__qmljs_string_concat(QV4::ExecutionContext *ctx, QV4::String *firs
// objects
Q_QML_EXPORT QV4::Value __qmljs_object_default_value(QV4::Object *object, int typeHint);
-void __qmljs_set_activation_property(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value& value);
-void __qmljs_set_property(QV4::ExecutionContext *ctx, const QV4::Value &object, QV4::String *name, const QV4::Value &value);
-void __qmljs_get_property(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &object, QV4::String *name);
+void __qmljs_set_activation_property(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_set_property(QV4::ExecutionContext *ctx, const QV4::ValueRef object, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_get_property(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef object, QV4::String *name);
void __qmljs_get_activation_property(QV4::ExecutionContext *ctx, QV4::ValueRef result, QV4::String *name);
void __qmljs_call_global_lookup(QV4::ExecutionContext *context, QV4::ValueRef result, uint index, CallDataRef callData);
void __qmljs_construct_global_lookup(QV4::ExecutionContext *context, QV4::ValueRef result, uint index, CallDataRef callData);
-void __qmljs_get_element(QV4::ExecutionContext *ctx, QV4::ValueRef retval, const QV4::Value &object, const QV4::Value &index);
-void __qmljs_set_element(QV4::ExecutionContext *ctx, const QV4::Value &object, const QV4::Value &index, const QV4::Value &value);
+void __qmljs_get_element(QV4::ExecutionContext *ctx, QV4::ValueRef retval, const QV4::ValueRef object, const QV4::ValueRef index);
+void __qmljs_set_element(QV4::ExecutionContext *ctx, const QV4::ValueRef object, const QV4::ValueRef index, const QV4::ValueRef value);
// For each
-void __qmljs_foreach_iterator_object(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &in);
-void __qmljs_foreach_next_property_name(QV4::ValueRef result, const QV4::Value &foreach_iterator);
+void __qmljs_foreach_iterator_object(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef in);
+void __qmljs_foreach_next_property_name(QV4::ValueRef result, const ValueRef foreach_iterator);
// type conversion and testing
-QV4::Value __qmljs_to_primitive(const QV4::Value &value, int typeHint);
-Q_QML_EXPORT QV4::Bool __qmljs_to_boolean(const QV4::Value &value);
-double __qmljs_to_number(const QV4::Value &value);
-QV4::Value __qmljs_to_string(const QV4::Value &value, QV4::ExecutionContext *ctx);
-Q_QML_EXPORT QV4::String *__qmljs_convert_to_string(QV4::ExecutionContext *ctx, const QV4::Value &value);
+QV4::Value __qmljs_to_primitive(const ValueRef value, int typeHint);
+Q_QML_EXPORT QV4::Bool __qmljs_to_boolean(const QV4::ValueRef value);
+double __qmljs_to_number(const QV4::ValueRef value);
+QV4::Value __qmljs_to_string(const ValueRef value, QV4::ExecutionContext *ctx);
+Q_QML_EXPORT QV4::String *__qmljs_convert_to_string(QV4::ExecutionContext *ctx, const ValueRef value);
void __qmljs_numberToString(QString *result, double num, int radix = 10);
-QV4::Value __qmljs_to_object(QV4::ExecutionContext *ctx, const QV4::Value &value);
-QV4::Object *__qmljs_convert_to_object(QV4::ExecutionContext *ctx, const QV4::Value &value);
+QV4::Value __qmljs_to_object(QV4::ExecutionContext *ctx, const ValueRef value);
+QV4::Object *__qmljs_convert_to_object(QV4::ExecutionContext *ctx, const ValueRef value);
-QV4::Bool __qmljs_equal_helper(const Value &x, const Value &y);
-Q_QML_EXPORT QV4::Bool __qmljs_strict_equal(const QV4::Value &x, const QV4::Value &y);
+QV4::Bool __qmljs_equal_helper(const ValueRef x, const ValueRef y);
+Q_QML_EXPORT QV4::Bool __qmljs_strict_equal(const ValueRef x, const ValueRef y);
// unary operators
typedef void (*UnaryOpName)(QV4::ValueRef, const QV4::ValueRef);
@@ -178,145 +178,125 @@ void __qmljs_not(QV4::ValueRef result, const QV4::ValueRef value);
void __qmljs_increment(QV4::ValueRef result, const QV4::ValueRef value);
void __qmljs_decrement(QV4::ValueRef result, const QV4::ValueRef value);
-Q_QML_EXPORT void __qmljs_value_to_double(double *result, const Value &value);
-Q_QML_EXPORT int __qmljs_value_to_int32(const Value &value);
+Q_QML_EXPORT void __qmljs_value_to_double(double *result, const ValueRef value);
+Q_QML_EXPORT int __qmljs_value_to_int32(const ValueRef value);
Q_QML_EXPORT int __qmljs_double_to_int32(const double &d);
-Q_QML_EXPORT unsigned __qmljs_value_to_uint32(const Value &value);
+Q_QML_EXPORT unsigned __qmljs_value_to_uint32(const ValueRef value);
Q_QML_EXPORT unsigned __qmljs_double_to_uint32(const double &d);
-void __qmljs_delete_subscript(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &base, const QV4::Value &index);
-void __qmljs_delete_member(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &base, QV4::String *name);
+void __qmljs_delete_subscript(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef base, const QV4::ValueRef index);
+void __qmljs_delete_member(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef base, QV4::String *name);
void __qmljs_delete_name(QV4::ExecutionContext *ctx, QV4::ValueRef result, QV4::String *name);
-void Q_NORETURN __qmljs_throw(QV4::ExecutionContext*, const QV4::Value &value);
+void Q_NORETURN __qmljs_throw(QV4::ExecutionContext*, const QV4::ValueRef value);
// binary operators
-typedef void (*BinOp)(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-typedef void (*BinOpContext)(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-
-void __qmljs_instanceof(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_in(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_add(ExecutionContext *ctx, QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_bit_or(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_bit_xor(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_bit_and(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_sub(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_mul(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_div(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_mod(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_shl(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_shr(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_ushr(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_gt(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_lt(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_ge(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_le(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_eq(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_ne(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_se(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
-void __qmljs_sne(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right);
+typedef void (*BinOp)(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+typedef void (*BinOpContext)(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+
+void __qmljs_instanceof(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_in(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_add(ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_bit_or(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_bit_xor(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_bit_and(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_sub(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_mul(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_div(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_mod(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_shl(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_shr(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_ushr(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_gt(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_lt(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_ge(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_le(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_eq(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_ne(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_se(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
+void __qmljs_sne(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
void __qmljs_add_helper(QV4::ExecutionContext *ctx, QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right);
-typedef void (*InplaceBinOpName)(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_bit_and_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_bit_or_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_bit_xor_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_add_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_sub_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_mul_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_div_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_mod_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_shl_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_shr_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-void __qmljs_inplace_ushr_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::Value &value);
-
-typedef void (*InplaceBinOpElement)(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_bit_and_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_bit_or_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_bit_xor_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_add_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_sub_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_mul_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_div_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_mod_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_shl_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_shr_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-void __qmljs_inplace_ushr_element(QV4::ExecutionContext *ctx, const QV4::Value &base, const QV4::Value &index, const QV4::Value &rhs);
-
-typedef void (*InplaceBinOpMember)(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_bit_and_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_bit_or_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_bit_xor_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_add_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_sub_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_mul_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_div_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_mod_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_shl_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_shr_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-void __qmljs_inplace_ushr_member(QV4::ExecutionContext *ctx, const QV4::Value &base, QV4::String *name, const QV4::Value &rhs);
-
-typedef QV4::Bool (*CmpOp)(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_gt(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_lt(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_ge(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_le(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_eq(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_ne(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_se(const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_sne(const QV4::Value &left, const QV4::Value &right);
-
-typedef QV4::Bool (*CmpOpContext)(QV4::ExecutionContext *ctx, const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_instanceof(QV4::ExecutionContext *ctx, const QV4::Value &left, const QV4::Value &right);
-QV4::Bool __qmljs_cmp_in(QV4::ExecutionContext *ctx, const QV4::Value &left, const QV4::Value &right);
+typedef void (*InplaceBinOpName)(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_inplace_bit_and_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_inplace_bit_or_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_inplace_bit_xor_name(QV4::ExecutionContext *ctx, QV4::String *name, const QV4::ValueRef value);
+void __qmljs_inplace_add_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_sub_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_mul_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_div_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_mod_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_shl_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_shr_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+void __qmljs_inplace_ushr_name(QV4::ExecutionContext *ctx, QV4::String *name, const ValueRef value);
+
+typedef void (*InplaceBinOpElement)(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_and_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_or_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_xor_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_add_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_sub_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_mul_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_div_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_mod_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_shl_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_shr_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+void __qmljs_inplace_ushr_element(QV4::ExecutionContext *ctx, const QV4::ValueRef base, const QV4::ValueRef index, const QV4::ValueRef rhs);
+
+typedef void (*InplaceBinOpMember)(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_and_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_or_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_bit_xor_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_add_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_sub_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_mul_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_div_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_mod_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_shl_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_shr_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+void __qmljs_inplace_ushr_member(QV4::ExecutionContext *ctx, const QV4::ValueRef base, QV4::String *name, const QV4::ValueRef rhs);
+
+typedef QV4::Bool (*CmpOp)(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_gt(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_lt(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_ge(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_le(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_eq(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_ne(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_se(const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_sne(const QV4::ValueRef left, const QV4::ValueRef right);
+
+typedef QV4::Bool (*CmpOpContext)(QV4::ExecutionContext *ctx, const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_instanceof(QV4::ExecutionContext *ctx, const QV4::ValueRef left, const QV4::ValueRef right);
+QV4::Bool __qmljs_cmp_in(QV4::ExecutionContext *ctx, const QV4::ValueRef left, const QV4::ValueRef right);
// type conversion and testing
-inline QV4::Value __qmljs_to_primitive(const QV4::Value &value, int typeHint)
+inline QV4::Value __qmljs_to_primitive(const QV4::ValueRef value, int typeHint)
{
- QV4::Object *o = value.asObject();
+ QV4::Object *o = value->asObject();
if (!o)
- return value;
+ return *value;
return __qmljs_object_default_value(o, typeHint);
}
-inline double __qmljs_to_number(const QV4::Value &value)
-{
- switch (value.type()) {
- case QV4::Value::Undefined_Type:
- return std::numeric_limits<double>::quiet_NaN();
- case QV4::Value::Null_Type:
- return 0;
- case QV4::Value::Boolean_Type:
- return (value.booleanValue() ? 1. : 0.);
- case QV4::Value::Integer_Type:
- return value.int_32;
- case QV4::Value::String_Type:
- return __qmljs_string_to_number(value.stringValue()->toQString());
- case QV4::Value::Object_Type: {
- QV4::Value prim = __qmljs_to_primitive(value, QV4::NUMBER_HINT);
- return __qmljs_to_number(prim);
- }
- default: // double
- return value.doubleValue();
- }
+inline double __qmljs_to_number(const ValueRef value)
+{
+ return value->toNumber();
}
-Q_QML_EXPORT int __qmljs_value_to_int32(const QV4::Value &value);
-Q_QML_EXPORT unsigned __qmljs_value_to_uint32(const QV4::Value &value);
-
-inline QV4::Value __qmljs_to_string(const QV4::Value &value, QV4::ExecutionContext *ctx)
+inline QV4::Value __qmljs_to_string(const QV4::ValueRef value, QV4::ExecutionContext *ctx)
{
- if (value.isString())
- return value;
+ if (value->isString())
+ return *value;
return QV4::Value::fromString(__qmljs_convert_to_string(ctx, value));
}
-inline QV4::Value __qmljs_to_object(QV4::ExecutionContext *ctx, const QV4::Value &value)
+inline QV4::Value __qmljs_to_object(QV4::ExecutionContext *ctx, const QV4::ValueRef value)
{
- if (value.isObject())
- return value;
+ if (value->isObject())
+ return *value;
return QV4::Value::fromObject(__qmljs_convert_to_object(ctx, value));
}
@@ -329,7 +309,7 @@ inline void __qmljs_uplus(QV4::ValueRef result, const QV4::ValueRef value)
if (result->tryIntegerConversion())
return;
- double n = __qmljs_to_number(*value);
+ double n = __qmljs_to_number(value);
*result = QV4::Value::fromDouble(n);
}
@@ -341,7 +321,7 @@ inline void __qmljs_uminus(QV4::ValueRef result, const QV4::ValueRef value)
if (value->isInteger() && value->integerValue())
*result = QV4::Value::fromInt32(-value->integerValue());
else {
- double n = __qmljs_to_number(*value);
+ double n = __qmljs_to_number(value);
*result = QV4::Value::fromDouble(-n);
}
}
@@ -354,7 +334,7 @@ inline void __qmljs_compl(QV4::ValueRef result, const QV4::ValueRef value)
if (value->isConvertibleToInt())
n = value->int_32;
else
- n = QV4::Value::toInt32(__qmljs_to_number(*value));
+ n = QV4::Value::toInt32(__qmljs_to_number(value));
*result = QV4::Value::fromInt32(~n);
}
@@ -368,12 +348,12 @@ inline void __qmljs_not(QV4::ValueRef result, const QV4::ValueRef value)
}
// binary operators
-inline void __qmljs_bit_or(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_bit_or(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = QV4::Value::fromInt32(left.integerValue() | right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = QV4::Value::fromInt32(left->integerValue() | right->integerValue());
return;
}
@@ -382,12 +362,12 @@ inline void __qmljs_bit_or(ValueRef result, const QV4::Value &left, const QV4::V
*result = QV4::Value::fromInt32(lval | rval);
}
-inline void __qmljs_bit_xor(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_bit_xor(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = QV4::Value::fromInt32(left.integerValue() ^ right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = QV4::Value::fromInt32(left->integerValue() ^ right->integerValue());
return;
}
@@ -396,12 +376,12 @@ inline void __qmljs_bit_xor(QV4::ValueRef result, const QV4::Value &left, const
*result = QV4::Value::fromInt32(lval ^ rval);
}
-inline void __qmljs_bit_and(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_bit_and(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = QV4::Value::fromInt32(left.integerValue() & right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = QV4::Value::fromInt32(left->integerValue() & right->integerValue());
return;
}
@@ -410,29 +390,29 @@ inline void __qmljs_bit_and(ValueRef result, const QV4::Value &left, const QV4::
*result = QV4::Value::fromInt32(lval & rval);
}
-inline void __qmljs_add(QV4::ExecutionContext *ctx, ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_add(QV4::ExecutionContext *ctx, ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = add_int32(left.integerValue(), right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = add_int32(left->integerValue(), right->integerValue());
return;
}
- if (QV4::Value::bothDouble(left, right)) {
- *result = QV4::Value::fromDouble(left.doubleValue() + right.doubleValue());
+ if (QV4::Value::bothDouble(*left, *right)) {
+ *result = QV4::Value::fromDouble(left->doubleValue() + right->doubleValue());
return;
}
- __qmljs_add_helper(ctx, result, ValueRef::fromRawValue(&left), ValueRef::fromRawValue(&right));
+ __qmljs_add_helper(ctx, result, left, right);
}
-inline void __qmljs_sub(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_sub(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = sub_int32(left.integerValue(), right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = sub_int32(left->integerValue(), right->integerValue());
return;
}
@@ -441,12 +421,12 @@ inline void __qmljs_sub(QV4::ValueRef result, const QV4::Value &left, const QV4:
*result = QV4::Value::fromDouble(lval - rval);
}
-inline void __qmljs_mul(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_mul(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = mul_int32(left.integerValue(), right.integerValue());
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = mul_int32(left->integerValue(), right->integerValue());
return;
}
@@ -455,7 +435,7 @@ inline void __qmljs_mul(ValueRef result, const QV4::Value &left, const QV4::Valu
*result = QV4::Value::fromDouble(lval * rval);
}
-inline void __qmljs_div(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_div(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
@@ -464,13 +444,13 @@ inline void __qmljs_div(QV4::ValueRef result, const QV4::Value &left, const QV4:
*result = QV4::Value::fromDouble(lval / rval);
}
-inline void __qmljs_mod(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_mod(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right) && right.integerValue() != 0) {
- int intRes = left.integerValue() % right.integerValue();
- if (intRes != 0 || left.integerValue() >= 0) {
+ if (QV4::Value::integerCompatible(*left, *right) && right->integerValue() != 0) {
+ int intRes = left->integerValue() % right->integerValue();
+ if (intRes != 0 || left->integerValue() >= 0) {
*result = QV4::Value::fromInt32(intRes);
return;
}
@@ -481,12 +461,12 @@ inline void __qmljs_mod(ValueRef result, const QV4::Value &left, const QV4::Valu
*result = QV4::Value::fromDouble(std::fmod(lval, rval));
}
-inline void __qmljs_shl(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_shl(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = QV4::Value::fromInt32(left.integerValue() << ((uint(right.integerValue()) & 0x1f)));
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = QV4::Value::fromInt32(left->integerValue() << ((uint(right->integerValue()) & 0x1f)));
return;
}
@@ -495,12 +475,12 @@ inline void __qmljs_shl(QV4::ValueRef result, const QV4::Value &left, const QV4:
*result = QV4::Value::fromInt32(lval << rval);
}
-inline void __qmljs_shr(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_shr(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right)) {
- *result = QV4::Value::fromInt32(left.integerValue() >> ((uint(right.integerValue()) & 0x1f)));
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ *result = QV4::Value::fromInt32(left->integerValue() >> ((uint(right->integerValue()) & 0x1f)));
return;
}
@@ -509,13 +489,13 @@ inline void __qmljs_shr(ValueRef result, const QV4::Value &left, const QV4::Valu
*result = QV4::Value::fromInt32(lval >> rval);
}
-inline void __qmljs_ushr(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_ushr(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
uint res;
- if (QV4::Value::integerCompatible(left, right)) {
- res = uint(left.integerValue()) >> (uint(right.integerValue()) & 0x1f);
+ if (QV4::Value::integerCompatible(*left, *right)) {
+ res = uint(left->integerValue()) >> (uint(right->integerValue()) & 0x1f);
} else {
unsigned lval = QV4::Value::toUInt32(__qmljs_to_number(left));
unsigned rval = QV4::Value::toUInt32(__qmljs_to_number(right)) & 0x1f;
@@ -528,49 +508,49 @@ inline void __qmljs_ushr(QV4::ValueRef result, const QV4::Value &left, const QV4
*result = QV4::Value::fromInt32(res);
}
-inline void __qmljs_gt(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_gt(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(__qmljs_cmp_gt(left, right));
}
-inline void __qmljs_lt(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_lt(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(__qmljs_cmp_lt(left, right));
}
-inline void __qmljs_ge(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_ge(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(__qmljs_cmp_ge(left, right));
}
-inline void __qmljs_le(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_le(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(__qmljs_cmp_le(left, right));
}
-inline void __qmljs_eq(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_eq(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(__qmljs_cmp_eq(left, right));
}
-inline void __qmljs_ne(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_ne(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
*result = QV4::Value::fromBoolean(!__qmljs_cmp_eq(left, right));
}
-inline void __qmljs_se(QV4::ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_se(QV4::ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
@@ -578,7 +558,7 @@ inline void __qmljs_se(QV4::ValueRef result, const QV4::Value &left, const QV4::
*result = QV4::Value::fromBoolean(r);
}
-inline void __qmljs_sne(ValueRef result, const QV4::Value &left, const QV4::Value &right)
+inline void __qmljs_sne(ValueRef result, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
@@ -586,12 +566,13 @@ inline void __qmljs_sne(ValueRef result, const QV4::Value &left, const QV4::Valu
*result = QV4::Value::fromBoolean(r);
}
-inline QV4::Bool __qmljs_cmp_gt(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_gt(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right))
- return left.integerValue() > right.integerValue();
+ if (QV4::Value::integerCompatible(*left, *right))
+ return left->integerValue() > right->integerValue();
+ // Safe, as l & r are primitive values
QV4::Value l = __qmljs_to_primitive(left, QV4::NUMBER_HINT);
QV4::Value r = __qmljs_to_primitive(right, QV4::NUMBER_HINT);
@@ -600,17 +581,17 @@ inline QV4::Bool __qmljs_cmp_gt(const QV4::Value &left, const QV4::Value &right)
} else if (l.isString() && r.isString()) {
return r.stringValue()->compare(l.stringValue());
} else {
- double dl = __qmljs_to_number(l);
- double dr = __qmljs_to_number(r);
+ double dl = __qmljs_to_number(ValueRef(&l));
+ double dr = __qmljs_to_number(ValueRef(&r));
return dl > dr;
}
}
-inline QV4::Bool __qmljs_cmp_lt(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_lt(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right))
- return left.integerValue() < right.integerValue();
+ if (QV4::Value::integerCompatible(*left, *right))
+ return left->integerValue() < right->integerValue();
QV4::Value l = __qmljs_to_primitive(left, QV4::NUMBER_HINT);
QV4::Value r = __qmljs_to_primitive(right, QV4::NUMBER_HINT);
@@ -620,17 +601,17 @@ inline QV4::Bool __qmljs_cmp_lt(const QV4::Value &left, const QV4::Value &right)
} else if (l.isString() && r.isString()) {
return l.stringValue()->compare(r.stringValue());
} else {
- double dl = __qmljs_to_number(l);
- double dr = __qmljs_to_number(r);
+ double dl = __qmljs_to_number(ValueRef(&l));
+ double dr = __qmljs_to_number(ValueRef(&r));
return dl < dr;
}
}
-inline QV4::Bool __qmljs_cmp_ge(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_ge(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right))
- return left.integerValue() >= right.integerValue();
+ if (QV4::Value::integerCompatible(*left, *right))
+ return left->integerValue() >= right->integerValue();
QV4::Value l = __qmljs_to_primitive(left, QV4::NUMBER_HINT);
QV4::Value r = __qmljs_to_primitive(right, QV4::NUMBER_HINT);
@@ -640,17 +621,17 @@ inline QV4::Bool __qmljs_cmp_ge(const QV4::Value &left, const QV4::Value &right)
} else if (l.isString() && r.isString()) {
return !l.stringValue()->compare(r.stringValue());
} else {
- double dl = __qmljs_to_number(l);
- double dr = __qmljs_to_number(r);
+ double dl = __qmljs_to_number(ValueRef(&l));
+ double dr = __qmljs_to_number(ValueRef(&r));
return dl >= dr;
}
}
-inline QV4::Bool __qmljs_cmp_le(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_le(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (QV4::Value::integerCompatible(left, right))
- return left.integerValue() <= right.integerValue();
+ if (QV4::Value::integerCompatible(*left, *right))
+ return left->integerValue() <= right->integerValue();
QV4::Value l = __qmljs_to_primitive(left, QV4::NUMBER_HINT);
QV4::Value r = __qmljs_to_primitive(right, QV4::NUMBER_HINT);
@@ -660,51 +641,51 @@ inline QV4::Bool __qmljs_cmp_le(const QV4::Value &left, const QV4::Value &right)
} else if (l.isString() && r.isString()) {
return !r.stringValue()->compare(l.stringValue());
} else {
- double dl = __qmljs_to_number(l);
- double dr = __qmljs_to_number(r);
+ double dl = __qmljs_to_number(ValueRef(&l));
+ double dr = __qmljs_to_number(ValueRef(&r));
return dl <= dr;
}
}
-inline QV4::Bool __qmljs_cmp_eq(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_eq(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
- if (left.val == right.val)
+ if (left->val == right->val)
// NaN != NaN
- return (left.tag & QV4::Value::NotDouble_Mask) != QV4::Value::NaN_Mask;
+ return (left->tag & QV4::Value::NotDouble_Mask) != QV4::Value::NaN_Mask;
- if (left.type() == right.type()) {
- if (left.isManaged())
- return left.managed()->isEqualTo(right.managed());
+ if (left->type() == right->type()) {
+ if (left->isManaged())
+ return left->managed()->isEqualTo(right->managed());
return false;
}
return __qmljs_equal_helper(left, right);
}
-inline QV4::Bool __qmljs_cmp_ne(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_ne(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
return !__qmljs_cmp_eq(left, right);
}
-inline QV4::Bool __qmljs_cmp_se(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_se(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
return __qmljs_strict_equal(left, right);
}
-inline QV4::Bool __qmljs_cmp_sne(const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_sne(const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
return ! __qmljs_strict_equal(left, right);
}
-inline QV4::Bool __qmljs_cmp_instanceof(QV4::ExecutionContext *ctx, const QV4::Value &left, const QV4::Value &right)
+inline QV4::Bool __qmljs_cmp_instanceof(QV4::ExecutionContext *ctx, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);
@@ -713,7 +694,7 @@ inline QV4::Bool __qmljs_cmp_instanceof(QV4::ExecutionContext *ctx, const QV4::V
return v.booleanValue();
}
-inline uint __qmljs_cmp_in(QV4::ExecutionContext *ctx, const QV4::Value &left, const QV4::Value &right)
+inline uint __qmljs_cmp_in(QV4::ExecutionContext *ctx, const QV4::ValueRef left, const QV4::ValueRef right)
{
TRACE2(left, right);