CompletionType evaluate() { Register<Value> value = getScopeChain()->get("value"); Register<StringValue> result = new StringValue(value->isUndefined() ? "" : value->toString()); if (string->hasInstance(getThis())) { // Constructor ObjectValue* object = static_cast<ObjectValue*>(getThis()); object->setValueProperty(result); Register<NumberValue> length = new NumberValue(result->length()); object->put("length", length, ObjectValue::DontEnum | ObjectValue::DontDelete | ObjectValue::ReadOnly); } return CompletionType(CompletionType::Return, result, ""); }