diff options
Diffstat (limited to 'src/lib/corelib/language/evaluatorscriptclass.cpp')
-rw-r--r-- | src/lib/corelib/language/evaluatorscriptclass.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp index 4c4a521a5..6e131fdec 100644 --- a/src/lib/corelib/language/evaluatorscriptclass.cpp +++ b/src/lib/corelib/language/evaluatorscriptclass.cpp @@ -213,14 +213,11 @@ private: // condition is true, let's use the value of this alternative if (alternative.value->sourceUsesOuter() && !outerItem) { // Clone value but without alternatives. - JSSourceValuePtr outerValue = JSSourceValue::create(); - outerValue->setFile(value->file()); - outerValue->setHasFunctionForm(value->hasFunctionForm()); - outerValue->setSourceCode(value->sourceCode()); - outerValue->setBaseValue(value->baseValue()); - if (value->sourceUsesBase()) - outerValue->setSourceUsesBaseFlag(); - outerValue->setLocation(value->line(), value->column()); + JSSourceValuePtr outerValue = + std::static_pointer_cast<JSSourceValue>(value->clone()); + outerValue->setNext(ValuePtr()); + outerValue->clearCreatedByPropertiesBlock(); + outerValue->clearAlternatives(); outerItem = Item::create(data->item->pool(), ItemType::Outer); outerItem->setProperty(propertyName->toString(), outerValue); } |