aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4codegen_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-11-02 21:10:13 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-05 22:23:25 +0100
commit90338de17a56304eace1f64661a9aac21fe4d29c (patch)
tree0960479c21e3d6f49c60ad7e90ae5fbdf9595ef2 /src/qml/compiler/qv4codegen_p.h
parentb5f76295659dd49d46b306b66807f44841fca992 (diff)
Move conversion of this object into generated code
When a non strict mode function uses the this object, we need to make sure it's being correctly converted into a object before being accessed. So far this was being done by ScriptFunction::call. Move this into the generated code to avoid overhead for methods not using 'this', and simplify our ScriptFunction::call() implementation. Change-Id: I739f4a89d29ed8082ce59e48d1523776224fc29d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4codegen_p.h')
-rw-r--r--src/qml/compiler/qv4codegen_p.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4codegen_p.h b/src/qml/compiler/qv4codegen_p.h
index 490e469dc7..b20db26467 100644
--- a/src/qml/compiler/qv4codegen_p.h
+++ b/src/qml/compiler/qv4codegen_p.h
@@ -148,6 +148,7 @@ protected:
bool hasNestedFunctions;
bool isStrict;
bool isNamedFunctionExpression;
+ bool usesThis;
enum UsesArgumentsObject {
ArgumentsObjectUnknown,
ArgumentsObjectNotUsed,
@@ -166,6 +167,7 @@ protected:
, hasNestedFunctions(false)
, isStrict(false)
, isNamedFunctionExpression(false)
+ , usesThis(false)
, usesArgumentsObject(ArgumentsObjectUnknown)
, compilationMode(mode)
{
@@ -513,6 +515,7 @@ protected:
virtual bool visit(AST::LocalForStatement *ast);
virtual bool visit(AST::ForEachStatement *ast);
virtual bool visit(AST::LocalForEachStatement *ast);
+ virtual bool visit(AST::ThisExpression *ast);
virtual bool visit(AST::Block *ast);