diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 8e0c63f7f3a2964773cb59c2460df22ebff12068..a0ab5d1ab49441cc602c354b158733547e0d2095 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 a56412337f42652fbe57c55a7fd53674e33fdd8f..4a5f1f57bffb3834217e056dfc42b705fde4a1d4 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;