From eec591ff1c9394a7ffdc103f4d4337ccd708de11 Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Mon, 4 Jul 2011 09:24:24 +0200 Subject: [PATCH] QmlJS: Make 'length' property available on all FunctionValues. Change-Id: I62bb8f41177521db1f3213d6bd804d8e4852560d Reviewed-on: http://codereview.qt.nokia.com/1044 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com> --- src/libs/qmljs/qmljsinterpreter.cpp | 13 +------------ src/libs/qmljs/qmljsinterpreter.h | 5 ----- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 8e0c63f7f3a..a0ab5d1ab49 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1097,6 +1097,7 @@ void Activation::setArguments(const ValueList &arguments) FunctionValue::FunctionValue(ValueOwner *valueOwner) : ObjectValue(valueOwner) { + setMember(QLatin1String("length"), valueOwner->numberValue()); } FunctionValue::~FunctionValue() @@ -1205,18 +1206,6 @@ const Value *Function::argument(int index) const return _arguments.at(index); } -const Value *Function::lookupMember(const QString &name, const Context *context, - const ObjectValue **foundInScope, bool examinePrototypes) const -{ - if (name == "length") { - if (foundInScope) - *foundInScope = this; - return valueOwner()->numberValue(); - } - - return FunctionValue::lookupMember(name, context, foundInScope, examinePrototypes); -} - const Value *Function::invoke(const Activation *activation) const { return activation->thisObject(); // ### FIXME it should return undefined diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h index a56412337f4..4a5f1f57bff 100644 --- a/src/libs/qmljs/qmljsinterpreter.h +++ b/src/libs/qmljs/qmljsinterpreter.h @@ -549,11 +549,6 @@ public: void addArgument(const Value *argument); void setReturnValue(const Value *returnValue); - // ObjectValue interface - virtual const Value *lookupMember(const QString &name, const Context *context, - const ObjectValue **foundInObject = 0, - bool examinePrototypes = true) const; - // FunctionValue interface virtual const Value *returnValue() const; virtual int argumentCount() const; -- GitLab