diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-10 12:53:28 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-18 13:16:18 +0200 |
commit | 89ff3cebe6d9ca8385d8d9300cfaa47cf07adb42 (patch) | |
tree | 690c6666c71a056a89bd35d5b59072e3ece7e36e /src/libs/qmljs/qmljsvalueowner.cpp | |
parent | 4cb8ec6a3271560753df4ebd679c027d9347d140 (diff) | |
download | qt-creator-89ff3cebe6d9ca8385d8d9300cfaa47cf07adb42.tar.gz |
QmlJS: Introduce UnknownValue.
To distinguish known-to-be-undefined from a genuinely unknown value.
Change-Id: I606b4ea4d726f94553400b8950d3c0a4e76564a8
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
Diffstat (limited to 'src/libs/qmljs/qmljsvalueowner.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsvalueowner.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/libs/qmljs/qmljsvalueowner.cpp b/src/libs/qmljs/qmljsvalueowner.cpp index a4b96bd40d..9182f03740 100644 --- a/src/libs/qmljs/qmljsvalueowner.cpp +++ b/src/libs/qmljs/qmljsvalueowner.cpp @@ -292,6 +292,11 @@ const UndefinedValue *ValueOwner::undefinedValue() const return &_undefinedValue; } +const UnknownValue *ValueOwner::unknownValue() const +{ + return &_unknownValue; +} + const NumberValue *ValueOwner::numberValue() const { return &_numberValue; @@ -488,7 +493,7 @@ Function *ValueOwner::addFunction(ObjectValue *object, const QString &name, cons Function *function = newFunction(); function->setReturnValue(result); for (int i = 0; i < argumentCount; ++i) - function->addArgument(undefinedValue()); // ### introduce unknownValue + function->addArgument(unknownValue()); object->setMember(name, function); return function; } @@ -497,7 +502,7 @@ Function *ValueOwner::addFunction(ObjectValue *object, const QString &name, int { Function *function = newFunction(); for (int i = 0; i < argumentCount; ++i) - function->addArgument(undefinedValue()); // ### introduce unknownValue + function->addArgument(unknownValue()); object->setMember(name, function); return function; } @@ -775,7 +780,7 @@ void ValueOwner::initializePrototypes() f->addArgument(stringValue(), "header"); f->addArgument(stringValue(), "value"); f = addFunction(xmlHttpRequest, "send"); - f->addArgument(undefinedValue(), "data"); + f->addArgument(unknownValue(), "data"); f = addFunction(xmlHttpRequest, "abort"); xmlHttpRequest->setMember("status", numberValue()); xmlHttpRequest->setMember("statusText", stringValue()); @@ -783,7 +788,7 @@ void ValueOwner::initializePrototypes() f->addArgument(stringValue(), "header"); f = addFunction(xmlHttpRequest, "getAllResponseHeaders"); xmlHttpRequest->setMember("responseText", stringValue()); - xmlHttpRequest->setMember("responseXML", undefinedValue()); + xmlHttpRequest->setMember("responseXML", unknownValue()); f = addFunction(_globalObject, "XMLHttpRequest", xmlHttpRequest); f->setMember("prototype", xmlHttpRequest); @@ -814,9 +819,9 @@ void ValueOwner::initializePrototypes() f->addArgument(stringValue(), "text"); f->addArgument(functionPrototype(), "reviver"); f = addFunction(json, "stringify", stringValue()); - f->addArgument(undefinedValue(), "value"); - f->addArgument(undefinedValue(), "replacer"); - f->addArgument(undefinedValue(), "space"); + f->addArgument(unknownValue(), "value"); + f->addArgument(unknownValue(), "replacer"); + f->addArgument(unknownValue(), "space"); _globalObject->setMember("JSON", json); // global Qt object, in alphabetic order @@ -864,8 +869,8 @@ void ValueOwner::initializePrototypes() _qmlFontObject = newObject(/*prototype =*/ 0); _qmlFontObject->setClassName(QLatin1String("Font")); _qmlFontObject->setMember("family", stringValue()); - _qmlFontObject->setMember("weight", undefinedValue()); // ### make me an object - _qmlFontObject->setMember("capitalization", undefinedValue()); // ### make me an object + _qmlFontObject->setMember("weight", unknownValue()); // ### make me an object + _qmlFontObject->setMember("capitalization", unknownValue()); // ### make me an object _qmlFontObject->setMember("bold", booleanValue()); _qmlFontObject->setMember("italic", booleanValue()); _qmlFontObject->setMember("underline", booleanValue()); @@ -948,7 +953,9 @@ const Value *ValueOwner::defaultValueForBuiltinType(const QString &name) const return colorValue(); } else if (name == QLatin1String("date")) { return datePrototype(); + } else if (name == QLatin1String("var") + || name == QLatin1String("variant")) { + return unknownValue(); } - // ### variant or var return undefinedValue(); } |