JavaScriptCore:
Rubber stamped by Maciej.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4313
eliminate KJS::Value and KJS::Object smart pointer wrappers (for simplicity and speed)
* JavaScriptCore.xcodeproj/project.pbxproj: Removed object_wrapper.h.
Global replaces and other wonderful stuff.
* bindings/NP_jsobject.cpp:
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_GetProperty):
(_NPN_SetProperty):
(_NPN_HasMethod):
(_NPN_SetException):
* bindings/c/c_instance.cpp:
(KJS::Bindings::CInstance::CInstance):
(KJS::Bindings::CInstance::invokeMethod):
(KJS::Bindings::CInstance::invokeDefaultMethod):
(KJS::Bindings::CInstance::defaultValue):
(KJS::Bindings::CInstance::stringValue):
(KJS::Bindings::CInstance::numberValue):
(KJS::Bindings::CInstance::booleanValue):
(KJS::Bindings::CInstance::valueOf):
* bindings/c/c_instance.h:
* bindings/c/c_runtime.cpp:
(CField::valueFromInstance):
(CField::setValueToInstance):
* bindings/c/c_runtime.h:
* bindings/c/c_utility.cpp:
(convertNPStringToUTF16):
(convertUTF8ToUTF16):
(coerceValueToNPVariantStringType):
(convertValueToNPVariant):
(convertNPVariantToValue):
* bindings/c/c_utility.h:
* bindings/jni/jni_instance.cpp:
(JavaInstance::stringValue):
(JavaInstance::numberValue):
(JavaInstance::booleanValue):
(JavaInstance::invokeMethod):
(JavaInstance::invokeDefaultMethod):
(JavaInstance::defaultValue):
(JavaInstance::valueOf):
* bindings/jni/jni_instance.h:
* bindings/jni/jni_jsobject.cpp:
(JSObject::invoke):
(JSObject::call):
(JSObject::eval):
(JSObject::getMember):
(JSObject::getSlot):
(JSObject::toString):
(JSObject::convertValueToJObject):
(JSObject::convertJObjectToValue):
(JSObject::listFromJArray):
* bindings/jni/jni_jsobject.h:
* bindings/jni/jni_objc.mm:
(KJS::Bindings::dispatchJNICall):
* bindings/jni/jni_runtime.cpp:
(JavaArray::convertJObjectToArray):
(JavaField::dispatchValueFromInstance):
(JavaField::valueFromInstance):
(JavaField::dispatchSetValueToInstance):
(JavaField::setValueToInstance):
(JavaArray::setValueAt):
(JavaArray::valueAt):
* bindings/jni/jni_runtime.h:
(KJS::Bindings::JavaString::ustring):
* bindings/jni/jni_utility.cpp:
(KJS::Bindings::getJavaVM):
(KJS::Bindings::getJNIEnv):
(KJS::Bindings::getMethodID):
(KJS::Bindings::callJNIVoidMethod):
(KJS::Bindings::callJNIObjectMethod):
(KJS::Bindings::callJNIBooleanMethod):
(KJS::Bindings::callJNIStaticBooleanMethod):
(KJS::Bindings::callJNIByteMethod):
(KJS::Bindings::callJNICharMethod):
(KJS::Bindings::callJNIShortMethod):
(KJS::Bindings::callJNIIntMethod):
(KJS::Bindings::callJNILongMethod):
(KJS::Bindings::callJNIFloatMethod):
(KJS::Bindings::callJNIDoubleMethod):
(KJS::Bindings::callJNIVoidMethodA):
(KJS::Bindings::callJNIObjectMethodA):
(KJS::Bindings::callJNIByteMethodA):
(KJS::Bindings::callJNICharMethodA):
(KJS::Bindings::callJNIShortMethodA):
(KJS::Bindings::callJNIIntMethodA):
(KJS::Bindings::callJNILongMethodA):
(KJS::Bindings::callJNIFloatMethodA):
(KJS::Bindings::callJNIDoubleMethodA):
(KJS::Bindings::callJNIBooleanMethodA):
(KJS::Bindings::callJNIVoidMethodIDA):
(KJS::Bindings::callJNIObjectMethodIDA):
(KJS::Bindings::callJNIByteMethodIDA):
(KJS::Bindings::callJNICharMethodIDA):
(KJS::Bindings::callJNIShortMethodIDA):
(KJS::Bindings::callJNIIntMethodIDA):
(KJS::Bindings::callJNILongMethodIDA):
(KJS::Bindings::callJNIFloatMethodIDA):
(KJS::Bindings::callJNIDoubleMethodIDA):
(KJS::Bindings::callJNIBooleanMethodIDA):
(KJS::Bindings::getCharactersFromJString):
(KJS::Bindings::releaseCharactersForJString):
(KJS::Bindings::getCharactersFromJStringInEnv):
(KJS::Bindings::releaseCharactersForJStringInEnv):
(KJS::Bindings::getUCharactersFromJStringInEnv):
(KJS::Bindings::releaseUCharactersForJStringInEnv):
(KJS::Bindings::JNITypeFromClassName):
(KJS::Bindings::signatureFromPrimitiveType):
(KJS::Bindings::JNITypeFromPrimitiveType):
(KJS::Bindings::getJNIField):
(KJS::Bindings::convertValueToJValue):
* bindings/jni/jni_utility.h:
* bindings/objc/WebScriptObject.mm:
(_didExecute):
(-[WebScriptObject _initializeWithObjectImp:originExecutionContext:Bindings::executionContext:Bindings::]):
(-[WebScriptObject _initWithObjectImp:originExecutionContext:Bindings::executionContext:Bindings::]):
(-[WebScriptObject _imp]):
(-[WebScriptObject _executionContext]):
(-[WebScriptObject _setExecutionContext:]):
(-[WebScriptObject _originExecutionContext]):
(-[WebScriptObject _setOriginExecutionContext:]):
(+[WebScriptObject throwException:]):
(listFromNSArray):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject stringRepresentation]):
(-[WebScriptObject webScriptValueAtIndex:]):
(-[WebScriptObject setException:]):
(+[WebScriptObject _convertValueToObjcValue:originExecutionContext:executionContext:Bindings::]):
* bindings/objc/WebScriptObjectPrivate.h:
* bindings/objc/objc_class.h:
* bindings/objc/objc_class.mm:
(KJS::Bindings::ObjcClass::fallbackObject):
* bindings/objc/objc_instance.h:
* bindings/objc/objc_instance.mm:
(ObjcInstance::invokeMethod):
(ObjcInstance::invokeDefaultMethod):
(ObjcInstance::setValueOfField):
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfField):
(ObjcInstance::getValueOfUndefinedField):
(ObjcInstance::defaultValue):
(ObjcInstance::stringValue):
(ObjcInstance::numberValue):
(ObjcInstance::booleanValue):
(ObjcInstance::valueOf):
* bindings/objc/objc_runtime.h:
* bindings/objc/objc_runtime.mm:
(ObjcField::valueFromInstance):
(convertValueToObjcObject):
(ObjcField::setValueToInstance):
(ObjcArray::setValueAt):
(ObjcArray::valueAt):
(ObjcFallbackObjectImp::put):
(ObjcFallbackObjectImp::callAsFunction):
(ObjcFallbackObjectImp::defaultValue):
* bindings/objc/objc_utility.h:
* bindings/objc/objc_utility.mm:
(Bindings::JSMethodNameToObjCMethodName):
(Bindings::convertValueToObjcValue):
(Bindings::convertNSStringToString):
(Bindings::convertObjcValueToValue):
(Bindings::objcValueTypeForType):
(Bindings::createObjcInstanceForValue):
* bindings/runtime.cpp:
(Instance::getValueOfField):
(Instance::setValueOfField):
(Instance::createRuntimeObject):
(Instance::createLanguageInstanceForValue):
* bindings/runtime.h:
(KJS::Bindings::Constructor::~Constructor):
(KJS::Bindings::Field::~Field):
(KJS::Bindings::MethodList::MethodList):
(KJS::Bindings::Class::fallbackObject):
(KJS::Bindings::Class::~Class):
(KJS::Bindings::Instance::Instance):
(KJS::Bindings::Instance::getValueOfUndefinedField):
(KJS::Bindings::Instance::supportsSetValueOfUndefinedField):
(KJS::Bindings::Instance::setValueOfUndefinedField):
(KJS::Bindings::Instance::valueOf):
(KJS::Bindings::Instance::setExecutionContext):
(KJS::Bindings::Instance::~Instance):
(KJS::Bindings::Array::~Array):
* bindings/runtime_array.cpp:
(RuntimeArrayImp::RuntimeArrayImp):
(RuntimeArrayImp::lengthGetter):
(RuntimeArrayImp::indexGetter):
(RuntimeArrayImp::put):
* bindings/runtime_array.h:
* bindings/runtime_method.cpp:
(RuntimeMethodImp::lengthGetter):
(RuntimeMethodImp::callAsFunction):
* bindings/runtime_method.h:
* bindings/runtime_object.cpp:
(RuntimeObjectImp::fallbackObjectGetter):
(RuntimeObjectImp::fieldGetter):
(RuntimeObjectImp::methodGetter):
(RuntimeObjectImp::getOwnPropertySlot):
(RuntimeObjectImp::put):
(RuntimeObjectImp::defaultValue):
(RuntimeObjectImp::callAsFunction):
* bindings/runtime_object.h:
* kjs/array_instance.h:
* kjs/array_object.cpp:
(ArrayInstanceImp::ArrayInstanceImp):
(ArrayInstanceImp::lengthGetter):
(ArrayInstanceImp::getOwnPropertySlot):
(ArrayInstanceImp::put):
(ArrayInstanceImp::propList):
(ArrayInstanceImp::setLength):
(compareByStringForQSort):
(compareWithCompareFunctionForQSort):
(ArrayInstanceImp::sort):
(ArrayInstanceImp::pushUndefinedObjectsToEnd):
(ArrayPrototypeImp::ArrayPrototypeImp):
(ArrayProtoFuncImp::ArrayProtoFuncImp):
(ArrayProtoFuncImp::callAsFunction):
(ArrayObjectImp::ArrayObjectImp):
(ArrayObjectImp::construct):
(ArrayObjectImp::callAsFunction):
* kjs/array_object.h:
* kjs/bool_object.cpp:
(BooleanPrototypeImp::BooleanPrototypeImp):
(BooleanProtoFuncImp::BooleanProtoFuncImp):
(BooleanProtoFuncImp::callAsFunction):
(BooleanObjectImp::BooleanObjectImp):
(BooleanObjectImp::construct):
(BooleanObjectImp::callAsFunction):
* kjs/bool_object.h:
* kjs/collector.cpp:
(KJS::Collector::markStackObjectsConservatively):
(KJS::Collector::collect):
(KJS::className):
* kjs/completion.h:
(KJS::Completion::Completion):
(KJS::Completion::value):
(KJS::Completion::isValueCompletion):
* kjs/context.h:
(KJS::ContextImp::variableObject):
(KJS::ContextImp::setVariableObject):
(KJS::ContextImp::thisValue):
(KJS::ContextImp::activationObject):
(KJS::ContextImp::pushScope):
* kjs/date_object.cpp:
(formatLocaleDate):
(KJS::timeFromArgs):
(KJS::DatePrototypeImp::DatePrototypeImp):
(KJS::DateProtoFuncImp::DateProtoFuncImp):
(KJS::DateProtoFuncImp::callAsFunction):
(KJS::DateObjectImp::DateObjectImp):
(KJS::DateObjectImp::construct):
(KJS::DateObjectImp::callAsFunction):
(KJS::DateObjectFuncImp::DateObjectFuncImp):
(KJS::DateObjectFuncImp::callAsFunction):
(KJS::parseDate):
(KJS::KRFCDate_parseDate):
(KJS::timeClip):
* kjs/date_object.h:
* kjs/debugger.cpp:
(Debugger::exception):
(Debugger::callEvent):
(Debugger::returnEvent):
* kjs/debugger.h:
* kjs/error_object.cpp:
(ErrorPrototypeImp::ErrorPrototypeImp):
(ErrorProtoFuncImp::ErrorProtoFuncImp):
(ErrorProtoFuncImp::callAsFunction):
(ErrorObjectImp::ErrorObjectImp):
(ErrorObjectImp::construct):
(ErrorObjectImp::callAsFunction):
(NativeErrorPrototypeImp::NativeErrorPrototypeImp):
(NativeErrorImp::NativeErrorImp):
(NativeErrorImp::construct):
(NativeErrorImp::callAsFunction):
* kjs/error_object.h:
* kjs/function.cpp:
(KJS::FunctionImp::FunctionImp):
(KJS::FunctionImp::callAsFunction):
(KJS::FunctionImp::processParameters):
(KJS::FunctionImp::argumentsGetter):
(KJS::FunctionImp::lengthGetter):
(KJS::FunctionImp::put):
(KJS::DeclaredFunctionImp::DeclaredFunctionImp):
(KJS::DeclaredFunctionImp::construct):
(KJS::ArgumentsImp::ArgumentsImp):
(KJS::ArgumentsImp::mappedIndexGetter):
(KJS::ArgumentsImp::put):
(KJS::ActivationImp::argumentsGetter):
(KJS::GlobalFuncImp::GlobalFuncImp):
(KJS::encode):
(KJS::decode):
(KJS::GlobalFuncImp::callAsFunction):
* kjs/function.h:
* kjs/function_object.cpp:
(FunctionPrototypeImp::FunctionPrototypeImp):
(FunctionPrototypeImp::callAsFunction):
(FunctionProtoFuncImp::FunctionProtoFuncImp):
(FunctionProtoFuncImp::callAsFunction):
(FunctionObjectImp::FunctionObjectImp):
(FunctionObjectImp::construct):
(FunctionObjectImp::callAsFunction):
* kjs/function_object.h:
* kjs/internal.cpp:
(KJS::UndefinedImp::toPrimitive):
(KJS::UndefinedImp::toObject):
(KJS::NullImp::toPrimitive):
(KJS::NullImp::toObject):
(KJS::BooleanImp::toPrimitive):
(KJS::BooleanImp::toObject):
(KJS::StringImp::toPrimitive):
(KJS::StringImp::toObject):
(KJS::NumberImp::toPrimitive):
(KJS::NumberImp::toObject):
(KJS::NumberImp::getUInt32):
(KJS::LabelStack::push):
(KJS::ContextImp::ContextImp):
(KJS::InterpreterImp::globalInit):
(KJS::InterpreterImp::globalClear):
(KJS::InterpreterImp::InterpreterImp):
(KJS::InterpreterImp::initGlobalObject):
(KJS::InterpreterImp::clear):
(KJS::InterpreterImp::mark):
(KJS::InterpreterImp::evaluate):
(KJS::InternalFunctionImp::hasInstance):
(KJS::roundValue):
(KJS::printInfo):
* kjs/internal.h:
(KJS::InterpreterImp::builtinObject):
(KJS::InterpreterImp::builtinFunction):
(KJS::InterpreterImp::builtinArray):
(KJS::InterpreterImp::builtinBoolean):
(KJS::InterpreterImp::builtinString):
(KJS::InterpreterImp::builtinNumber):
(KJS::InterpreterImp::builtinDate):
(KJS::InterpreterImp::builtinRegExp):
(KJS::InterpreterImp::builtinError):
(KJS::InterpreterImp::builtinObjectPrototype):
(KJS::InterpreterImp::builtinFunctionPrototype):
(KJS::InterpreterImp::builtinArrayPrototype):
(KJS::InterpreterImp::builtinBooleanPrototype):
(KJS::InterpreterImp::builtinStringPrototype):
(KJS::InterpreterImp::builtinNumberPrototype):
(KJS::InterpreterImp::builtinDatePrototype):
(KJS::InterpreterImp::builtinRegExpPrototype):
(KJS::InterpreterImp::builtinErrorPrototype):
(KJS::InterpreterImp::builtinEvalError):
(KJS::InterpreterImp::builtinRangeError):
(KJS::InterpreterImp::builtinReferenceError):
(KJS::InterpreterImp::builtinSyntaxError):
(KJS::InterpreterImp::builtinTypeError):
(KJS::InterpreterImp::builtinURIError):
(KJS::InterpreterImp::builtinEvalErrorPrototype):
(KJS::InterpreterImp::builtinRangeErrorPrototype):
(KJS::InterpreterImp::builtinReferenceErrorPrototype):
(KJS::InterpreterImp::builtinSyntaxErrorPrototype):
(KJS::InterpreterImp::builtinTypeErrorPrototype):
(KJS::InterpreterImp::builtinURIErrorPrototype):
* kjs/interpreter.cpp:
(Context::variableObject):
(Context::thisValue):
(Interpreter::Interpreter):
(Interpreter::globalObject):
(Interpreter::evaluate):
(Interpreter::builtinObject):
(Interpreter::builtinFunction):
(Interpreter::builtinArray):
(Interpreter::builtinBoolean):
(Interpreter::builtinString):
(Interpreter::builtinNumber):
(Interpreter::builtinDate):
(Interpreter::builtinRegExp):
(Interpreter::builtinError):
(Interpreter::builtinObjectPrototype):
(Interpreter::builtinFunctionPrototype):
(Interpreter::builtinArrayPrototype):
(Interpreter::builtinBooleanPrototype):
(Interpreter::builtinStringPrototype):
(Interpreter::builtinNumberPrototype):
(Interpreter::builtinDatePrototype):
(Interpreter::builtinRegExpPrototype):
(Interpreter::builtinErrorPrototype):
(Interpreter::builtinEvalError):
(Interpreter::builtinRangeError):
(Interpreter::builtinReferenceError):
(Interpreter::builtinSyntaxError):
(Interpreter::builtinTypeError):
(Interpreter::builtinURIError):
(Interpreter::builtinEvalErrorPrototype):
(Interpreter::builtinRangeErrorPrototype):
(Interpreter::builtinReferenceErrorPrototype):
(Interpreter::builtinSyntaxErrorPrototype):
(Interpreter::builtinTypeErrorPrototype):
(Interpreter::builtinURIErrorPrototype):
(Interpreter::createLanguageInstanceForValue):
* kjs/interpreter.h:
(KJS::Interpreter::isGlobalObject):
(KJS::ExecState::setException):
(KJS::ExecState::clearException):
(KJS::ExecState::exception):
(KJS::ExecState::hadException):
(KJS::ExecState::ExecState):
* kjs/list.cpp:
(KJS::List::at):
* kjs/list.h:
(KJS::List::operator[]):
(KJS::ListIterator::operator->):
(KJS::ListIterator::operator*):
(KJS::ListIterator::operator++):
(KJS::ListIterator::operator--):
* kjs/lookup.h:
(KJS::staticFunctionGetter):
(KJS::staticValueGetter):
(KJS::lookupPut):
(KJS::cacheGlobalObject):
* kjs/math_object.cpp:
(MathObjectImp::getValueProperty):
(MathFuncImp::MathFuncImp):
(MathFuncImp::callAsFunction):
* kjs/math_object.h:
* kjs/nodes.cpp:
(Node::evaluateReference):
(Node::throwError):
(Node::setExceptionDetailsIfNeeded):
(NullNode::evaluate):
(BooleanNode::evaluate):
(NumberNode::evaluate):
(StringNode::evaluate):
(RegExpNode::evaluate):
(ThisNode::evaluate):
(ResolveNode::evaluate):
(ResolveNode::evaluateReference):
(GroupNode::evaluate):
(ElementNode::evaluate):
(ArrayNode::evaluate):
(ObjectLiteralNode::evaluate):
(PropertyValueNode::evaluate):
(PropertyNode::evaluate):
(AccessorNode1::evaluate):
(AccessorNode1::evaluateReference):
(AccessorNode2::evaluate):
(AccessorNode2::evaluateReference):
(ArgumentListNode::evaluate):
(ArgumentListNode::evaluateList):
(ArgumentsNode::evaluate):
(NewExprNode::evaluate):
(FunctionCallNode::evaluate):
(PostfixNode::evaluate):
(DeleteNode::evaluate):
(VoidNode::evaluate):
(TypeOfNode::evaluate):
(PrefixNode::evaluate):
(UnaryPlusNode::evaluate):
(NegateNode::evaluate):
(BitwiseNotNode::evaluate):
(LogicalNotNode::evaluate):
(MultNode::evaluate):
(AddNode::evaluate):
(ShiftNode::evaluate):
(RelationalNode::evaluate):
(EqualNode::evaluate):
(BitOperNode::evaluate):
(BinaryLogicalNode::evaluate):
(ConditionalNode::evaluate):
(AssignNode::evaluate):
(CommaNode::evaluate):
(StatListNode::execute):
(AssignExprNode::evaluate):
(VarDeclNode::evaluate):
(VarDeclNode::processVarDecls):
(VarDeclListNode::evaluate):
(ExprStatementNode::execute):
(IfNode::execute):
(DoWhileNode::execute):
(WhileNode::execute):
(ForNode::execute):
(ForInNode::execute):
(ContinueNode::execute):
(BreakNode::execute):
(ReturnNode::execute):
(WithNode::execute):
(CaseClauseNode::evaluate):
(ClauseListNode::evaluate):
(CaseBlockNode::evaluate):
(CaseBlockNode::evalBlock):
(SwitchNode::execute):
(ThrowNode::execute):
(CatchNode::execute):
(TryNode::execute):
(ParameterNode::evaluate):
(FuncDeclNode::processFuncDecl):
(FuncExprNode::evaluate):
(SourceElementsNode::execute):
* kjs/nodes.h:
(KJS::StatementNode::evaluate):
* kjs/number_object.cpp:
(NumberPrototypeImp::NumberPrototypeImp):
(NumberProtoFuncImp::NumberProtoFuncImp):
(NumberProtoFuncImp::callAsFunction):
(NumberObjectImp::NumberObjectImp):
(NumberObjectImp::getValueProperty):
(NumberObjectImp::construct):
(NumberObjectImp::callAsFunction):
* kjs/number_object.h:
* kjs/object.cpp:
(KJS::ObjectImp::call):
(KJS::ObjectImp::mark):
(KJS::ObjectImp::classInfo):
(KJS::ObjectImp::get):
(KJS::ObjectImp::getProperty):
(KJS::ObjectImp::getPropertySlot):
(KJS::ObjectImp::put):
(KJS::ObjectImp::hasOwnProperty):
(KJS::ObjectImp::defaultValue):
(KJS::ObjectImp::findPropertyHashEntry):
(KJS::ObjectImp::construct):
(KJS::ObjectImp::callAsFunction):
(KJS::ObjectImp::hasInstance):
(KJS::ObjectImp::propList):
(KJS::ObjectImp::toPrimitive):
(KJS::ObjectImp::toNumber):
(KJS::ObjectImp::toString):
(KJS::ObjectImp::toObject):
(KJS::ObjectImp::putDirect):
(KJS::Error::create):
(KJS::error):
* kjs/object.h:
(KJS::):
(KJS::ObjectImp::getPropertySlot):
(KJS::AllocatedValueImp::isObject):
(KJS::ObjectImp::ObjectImp):
(KJS::ObjectImp::internalValue):
(KJS::ObjectImp::setInternalValue):
(KJS::ObjectImp::prototype):
(KJS::ObjectImp::setPrototype):
(KJS::ObjectImp::inherits):
* kjs/object_object.cpp:
(ObjectPrototypeImp::ObjectPrototypeImp):
(ObjectProtoFuncImp::ObjectProtoFuncImp):
(ObjectProtoFuncImp::callAsFunction):
(ObjectObjectImp::ObjectObjectImp):
(ObjectObjectImp::construct):
(ObjectObjectImp::callAsFunction):
* kjs/object_object.h:
* kjs/operations.cpp:
(KJS::equal):
(KJS::strictEqual):
(KJS::relation):
(KJS::add):
(KJS::mult):
* kjs/operations.h:
* kjs/property_map.cpp:
(KJS::PropertyMap::mark):
(KJS::PropertyMap::addEnumerablesToReferenceList):
(KJS::PropertyMap::addSparseArrayPropertiesToReferenceList):
(KJS::PropertyMap::save):
(KJS::PropertyMap::restore):
* kjs/property_map.h:
* kjs/property_slot.cpp:
(KJS::PropertySlot::undefinedGetter):
* kjs/property_slot.h:
(KJS::PropertySlot::getValue):
* kjs/protect.h:
(KJS::gcUnprotectNullTolerant):
(KJS::ProtectedValue::ProtectedValue):
(KJS::ProtectedValue::~ProtectedValue):
(KJS::ProtectedValue::operator=):
(KJS::ProtectedValue::operator ValueImp *):
(KJS::ProtectedValue::operator->):
* kjs/protected_object.h:
(KJS::ProtectedObject::ProtectedObject):
(KJS::ProtectedObject::operator=):
(KJS::ProtectedObject::operator ValueImp *):
(KJS::ProtectedObject::operator ObjectImp *):
(KJS::ProtectedObject::operator->):
(KJS::ProtectedReference::ProtectedReference):
(KJS::ProtectedReference::~ProtectedReference):
(KJS::ProtectedReference::operator=):
* kjs/protected_values.cpp:
(KJS::ProtectedValues::getProtectCount):
(KJS::ProtectedValues::increaseProtectCount):
(KJS::ProtectedValues::insert):
(KJS::ProtectedValues::decreaseProtectCount):
* kjs/protected_values.h:
* kjs/reference.cpp:
(KJS::Reference::Reference):
(KJS::Reference::makeValueReference):
(KJS::Reference::getBase):
(KJS::Reference::getValue):
(KJS::Reference::putValue):
(KJS::Reference::deleteValue):
* kjs/reference.h:
(KJS::Reference::baseIfMutable):
* kjs/regexp_object.cpp:
(RegExpPrototypeImp::RegExpPrototypeImp):
(RegExpProtoFuncImp::RegExpProtoFuncImp):
(RegExpProtoFuncImp::callAsFunction):
(RegExpObjectImp::RegExpObjectImp):
(RegExpObjectImp::arrayOfMatches):
(RegExpObjectImp::backrefGetter):
(RegExpObjectImp::construct):
(RegExpObjectImp::callAsFunction):
* kjs/regexp_object.h:
* kjs/string_object.cpp:
(StringInstanceImp::lengthGetter):
(StringInstanceImp::indexGetter):
(StringInstanceImp::getOwnPropertySlot):
(StringInstanceImp::put):
(StringPrototypeImp::StringPrototypeImp):
(StringProtoFuncImp::StringProtoFuncImp):
(regExpIsGlobal):
(replace):
(StringProtoFuncImp::callAsFunction):
(StringObjectImp::StringObjectImp):
(StringObjectImp::construct):
(StringObjectImp::callAsFunction):
(StringObjectFuncImp::StringObjectFuncImp):
(StringObjectFuncImp::callAsFunction):
* kjs/string_object.h:
* kjs/testkjs.cpp:
(TestFunctionImp::callAsFunction):
(VersionFunctionImp::callAsFunction):
(main):
* kjs/value.cpp:
(KJS::AllocatedValueImp::operator new):
(KJS::AllocatedValueImp::getUInt32):
(KJS::ValueImp::toInteger):
(KJS::ValueImp::toInt32):
(KJS::ValueImp::toUInt32):
(KJS::ValueImp::toUInt16):
(KJS::ValueImp::toObject):
(KJS::AllocatedValueImp::getBoolean):
(KJS::AllocatedValueImp::getNumber):
(KJS::AllocatedValueImp::getString):
(KJS::AllocatedValueImp::getObject):
(KJS::jsString):
(KJS::jsNumber):
(KJS::ConstantValues::init):
(KJS::ConstantValues::clear):
(KJS::ConstantValues::mark):
* kjs/value.h:
(KJS::):
(KJS::jsUndefined):
(KJS::jsNull):
(KJS::jsBoolean):
(KJS::jsNaN):
(KJS::ValueImp::ValueImp):
(KJS::ValueImp::~ValueImp):
(KJS::AllocatedValueImp::AllocatedValueImp):
(KJS::AllocatedValueImp::~AllocatedValueImp):
(KJS::AllocatedValueImp::isBoolean):
(KJS::AllocatedValueImp::isNumber):
(KJS::AllocatedValueImp::isString):
(KJS::AllocatedValueImp::isObject):
(KJS::AllocatedValueImp::marked):
(KJS::AllocatedValueImp::mark):
(KJS::ValueImp::downcast):
(KJS::ValueImp::isUndefined):
(KJS::ValueImp::isNull):
(KJS::ValueImp::isUndefinedOrNull):
(KJS::ValueImp::isBoolean):
(KJS::ValueImp::isNumber):
(KJS::ValueImp::isString):
(KJS::ValueImp::isObject):
(KJS::ValueImp::getBoolean):
(KJS::ValueImp::getNumber):
(KJS::ValueImp::getString):
(KJS::ValueImp::getObject):
(KJS::ValueImp::getUInt32):
(KJS::ValueImp::mark):
(KJS::ValueImp::marked):
(KJS::ValueImp::type):
(KJS::ValueImp::toPrimitive):
(KJS::ValueImp::toBoolean):
(KJS::ValueImp::toNumber):
(KJS::ValueImp::toString):
(KJS::jsZero):
(KJS::jsOne):
(KJS::jsTwo):
(KJS::Undefined):
(KJS::Null):
(KJS::Boolean):
(KJS::Number):
(KJS::String):
WebCore:
Rubber stamped by Maciej.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4313
eliminate KJS::Value and KJS::Object smart pointer wrappers (for simplicity and speed)
* khtml/ecma/domparser.cpp:
(KJS::DOMParserConstructorImp::construct):
(KJS::DOMParserProtoFunc::callAsFunction):
* khtml/ecma/domparser.h:
* khtml/ecma/kjs_binding.cpp:
(KJS::ScriptInterpreter::ScriptInterpreter):
(KJS::ScriptInterpreter::isGlobalObject):
(KJS::ScriptInterpreter::createLanguageInstanceForValue):
(KJS::getStringOrNull):
(KJS::ValueToVariant):
(KJS::setDOMException):
* khtml/ecma/kjs_binding.h:
(KJS::DOMFunction::toPrimitive):
(KJS::cacheDOMObject):
* khtml/ecma/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::indexGetter):
(KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
(KJS::DOMCSSStyleDeclaration::getValueProperty):
(KJS::DOMCSSStyleDeclaration::put):
(KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
(KJS::DOMStyleSheet::getValueProperty):
(KJS::DOMStyleSheet::put):
(KJS::DOMStyleSheetList::getValueProperty):
(KJS::DOMStyleSheetList::indexGetter):
(KJS::DOMStyleSheetList::nameGetter):
(KJS::DOMStyleSheetListFunc::callAsFunction):
(KJS::DOMMediaList::getValueProperty):
(KJS::DOMMediaList::indexGetter):
(KJS::DOMMediaList::put):
(KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
(KJS::DOMCSSStyleSheet::getValueProperty):
(KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
(KJS::DOMCSSRuleList::getValueProperty):
(KJS::DOMCSSRuleList::indexGetter):
(KJS::DOMCSSRuleListFunc::callAsFunction):
(KJS::DOMCSSRule::getValueProperty):
(KJS::DOMCSSRule::put):
(KJS::DOMCSSRule::putValueProperty):
(KJS::DOMCSSRuleFunc::callAsFunction):
(KJS::CSSRuleConstructor::getValueProperty):
(KJS::getCSSRuleConstructor):
(KJS::DOMCSSValue::getValueProperty):
(KJS::DOMCSSValue::put):
(KJS::getDOMCSSValue):
(KJS::CSSValueConstructor::getValueProperty):
(KJS::getCSSValueConstructor):
(KJS::DOMCSSPrimitiveValue::getValueProperty):
(KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
(KJS::CSSPrimitiveValueConstructor::getValueProperty):
(KJS::getCSSPrimitiveValueConstructor):
(KJS::DOMCSSValueList::getValueProperty):
(KJS::DOMCSSValueList::indexGetter):
(KJS::DOMCSSValueListFunc::callAsFunction):
(KJS::DOMRGBColor::getValueProperty):
(KJS::DOMRect::getValueProperty):
(KJS::DOMCounter::getValueProperty):
* khtml/ecma/kjs_css.h:
* khtml/ecma/kjs_dom.cpp:
(KJS::DOMNode::getValueProperty):
(KJS::DOMNode::put):
(KJS::DOMNode::putValueProperty):
(KJS::DOMNode::toPrimitive):
(KJS::DOMNode::getListener):
(KJS::DOMNodeProtoFunc::callAsFunction):
(KJS::DOMNodeList::toPrimitive):
(KJS::DOMNodeList::getValueProperty):
(KJS::DOMNodeList::indexGetter):
(KJS::DOMNodeList::nameGetter):
(KJS::DOMNodeList::callAsFunction):
(KJS::DOMNodeListFunc::DOMNodeListFunc):
(KJS::DOMNodeListFunc::callAsFunction):
(KJS::DOMAttr::getValueProperty):
(KJS::DOMAttr::put):
(KJS::DOMAttr::putValueProperty):
(KJS::DOMDocument::getValueProperty):
(KJS::DOMDocument::put):
(KJS::DOMDocument::putValueProperty):
(KJS::DOMDocumentProtoFunc::callAsFunction):
(KJS::DOMElement::getValueProperty):
(KJS::DOMElement::attributeGetter):
(KJS::DOMElement::getOwnPropertySlot):
(KJS::DOMElementProtoFunc::callAsFunction):
(KJS::DOMDOMImplementationProtoFunc::callAsFunction):
(KJS::DOMDocumentType::getValueProperty):
(KJS::DOMNamedNodeMap::lengthGetter):
(KJS::DOMNamedNodeMap::indexGetter):
(KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
(KJS::DOMProcessingInstruction::getValueProperty):
(KJS::DOMProcessingInstruction::put):
(KJS::DOMNotation::getValueProperty):
(KJS::DOMEntity::getValueProperty):
(KJS::NodeConstructor::getValueProperty):
(KJS::DOMExceptionConstructor::getValueProperty):
(KJS::DOMNamedNodesCollection::lengthGetter):
(KJS::DOMNamedNodesCollection::indexGetter):
(KJS::DOMCharacterData::getValueProperty):
(KJS::DOMCharacterData::put):
(KJS::DOMCharacterDataProtoFunc::callAsFunction):
(KJS::DOMTextProtoFunc::callAsFunction):
* khtml/ecma/kjs_dom.h:
* khtml/ecma/kjs_events.cpp:
(KJS::JSAbstractEventListener::handleEvent):
(KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
(KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
(KJS::JSUnprotectedEventListener::listenerObj):
(KJS::JSUnprotectedEventListener::windowObj):
(KJS::JSUnprotectedEventListener::mark):
(KJS::JSEventListener::JSEventListener):
(KJS::JSEventListener::~JSEventListener):
(KJS::JSEventListener::listenerObj):
(KJS::JSEventListener::windowObj):
(KJS::JSLazyEventListener::JSLazyEventListener):
(KJS::JSLazyEventListener::handleEvent):
(KJS::JSLazyEventListener::listenerObj):
(KJS::JSLazyEventListener::parseCode):
(KJS::getNodeEventListener):
(KJS::EventConstructor::getValueProperty):
(KJS::getEventConstructor):
(KJS::DOMEvent::getValueProperty):
(KJS::DOMEvent::put):
(KJS::DOMEvent::putValueProperty):
(KJS::DOMEventProtoFunc::callAsFunction):
(KJS::getDOMEvent):
(KJS::EventExceptionConstructor::getValueProperty):
(KJS::getEventExceptionConstructor):
(KJS::DOMUIEvent::getValueProperty):
(KJS::DOMUIEventProtoFunc::callAsFunction):
(KJS::DOMMouseEvent::getValueProperty):
(KJS::DOMMouseEventProtoFunc::callAsFunction):
(KJS::DOMKeyboardEvent::getValueProperty):
(KJS::DOMKeyboardEventProtoFunc::callAsFunction):
(KJS::MutationEventConstructor::getValueProperty):
(KJS::getMutationEventConstructor):
(KJS::DOMMutationEvent::getValueProperty):
(KJS::DOMMutationEventProtoFunc::callAsFunction):
(KJS::DOMWheelEvent::getValueProperty):
(KJS::DOMWheelEventProtoFunc::callAsFunction):
(KJS::stringOrUndefined):
(KJS::Clipboard::getValueProperty):
(KJS::Clipboard::put):
(KJS::Clipboard::putValueProperty):
(KJS::ClipboardProtoFunc::callAsFunction):
* khtml/ecma/kjs_events.h:
(KJS::JSAbstractEventListener::listenerObjImp):
* khtml/ecma/kjs_html.cpp:
(KJS::KJS::HTMLDocFunction::callAsFunction):
(KJS::HTMLDocument::namedItemGetter):
(KJS::HTMLDocument::getValueProperty):
(KJS::KJS::HTMLDocument::put):
(KJS::KJS::HTMLDocument::putValueProperty):
(KJS::HTMLElement::formIndexGetter):
(KJS::HTMLElement::formNameGetter):
(KJS::HTMLElement::selectIndexGetter):
(KJS::HTMLElement::framesetNameGetter):
(KJS::HTMLElement::frameWindowPropertyGetter):
(KJS::HTMLElement::runtimeObjectGetter):
(KJS::HTMLElement::runtimeObjectPropertyGetter):
(KJS::HTMLElement::getOwnPropertySlot):
(KJS::KJS::HTMLElement::implementsCall):
(KJS::KJS::HTMLElement::callAsFunction):
(KJS::HTMLElement::htmlGetter):
(KJS::HTMLElement::headGetter):
(KJS::HTMLElement::linkGetter):
(KJS::HTMLElement::titleGetter):
(KJS::HTMLElement::metaGetter):
(KJS::HTMLElement::baseGetter):
(KJS::HTMLElement::isIndexGetter):
(KJS::HTMLElement::styleGetter):
(KJS::HTMLElement::bodyGetter):
(KJS::HTMLElement::formGetter):
(KJS::HTMLElement::selectGetter):
(KJS::HTMLElement::optGroupGetter):
(KJS::HTMLElement::optionGetter):
(KJS::getInputSelectionStart):
(KJS::getInputSelectionEnd):
(KJS::HTMLElement::inputGetter):
(KJS::HTMLElement::textAreaGetter):
(KJS::HTMLElement::buttonGetter):
(KJS::HTMLElement::labelGetter):
(KJS::HTMLElement::fieldSetGetter):
(KJS::HTMLElement::legendGetter):
(KJS::HTMLElement::uListGetter):
(KJS::HTMLElement::oListGetter):
(KJS::HTMLElement::dListGetter):
(KJS::HTMLElement::dirGetter):
(KJS::HTMLElement::menuGetter):
(KJS::HTMLElement::liGetter):
(KJS::HTMLElement::divGetter):
(KJS::HTMLElement::paragraphGetter):
(KJS::HTMLElement::headingGetter):
(KJS::HTMLElement::blockQuoteGetter):
(KJS::HTMLElement::quoteGetter):
(KJS::HTMLElement::preGetter):
(KJS::HTMLElement::brGetter):
(KJS::HTMLElement::baseFontGetter):
(KJS::HTMLElement::fontGetter):
(KJS::HTMLElement::hrGetter):
(KJS::HTMLElement::modGetter):
(KJS::HTMLElement::anchorGetter):
(KJS::HTMLElement::imageGetter):
(KJS::HTMLElement::objectGetter):
(KJS::HTMLElement::paramGetter):
(KJS::HTMLElement::appletGetter):
(KJS::HTMLElement::mapGetter):
(KJS::HTMLElement::areaGetter):
(KJS::HTMLElement::scriptGetter):
(KJS::HTMLElement::tableGetter):
(KJS::HTMLElement::tableCaptionGetter):
(KJS::HTMLElement::tableColGetter):
(KJS::HTMLElement::tableSectionGetter):
(KJS::HTMLElement::tableRowGetter):
(KJS::HTMLElement::tableCellGetter):
(KJS::HTMLElement::frameSetGetter):
(KJS::HTMLElement::frameGetter):
(KJS::HTMLElement::iFrameGetter):
(KJS::HTMLElement::marqueeGetter):
(KJS::HTMLElement::getValueProperty):
(KJS::HTMLElementFunction::HTMLElementFunction):
(KJS::KJS::HTMLElementFunction::callAsFunction):
(KJS::KJS::HTMLElement::put):
(KJS::HTMLElement::htmlSetter):
(KJS::HTMLElement::headSetter):
(KJS::HTMLElement::linkSetter):
(KJS::HTMLElement::titleSetter):
(KJS::HTMLElement::metaSetter):
(KJS::HTMLElement::baseSetter):
(KJS::HTMLElement::isIndexSetter):
(KJS::HTMLElement::styleSetter):
(KJS::HTMLElement::bodySetter):
(KJS::HTMLElement::formSetter):
(KJS::HTMLElement::selectSetter):
(KJS::HTMLElement::optGroupSetter):
(KJS::HTMLElement::optionSetter):
(KJS::HTMLElement::inputSetter):
(KJS::HTMLElement::textAreaSetter):
(KJS::HTMLElement::buttonSetter):
(KJS::HTMLElement::labelSetter):
(KJS::HTMLElement::fieldSetSetter):
(KJS::HTMLElement::legendSetter):
(KJS::HTMLElement::uListSetter):
(KJS::HTMLElement::oListSetter):
(KJS::HTMLElement::dListSetter):
(KJS::HTMLElement::dirSetter):
(KJS::HTMLElement::menuSetter):
(KJS::HTMLElement::liSetter):
(KJS::HTMLElement::divSetter):
(KJS::HTMLElement::paragraphSetter):
(KJS::HTMLElement::headingSetter):
(KJS::HTMLElement::blockQuoteSetter):
(KJS::HTMLElement::quoteSetter):
(KJS::HTMLElement::preSetter):
(KJS::HTMLElement::brSetter):
(KJS::HTMLElement::baseFontSetter):
(KJS::HTMLElement::fontSetter):
(KJS::HTMLElement::hrSetter):
(KJS::HTMLElement::modSetter):
(KJS::HTMLElement::anchorSetter):
(KJS::HTMLElement::imageSetter):
(KJS::HTMLElement::objectSetter):
(KJS::HTMLElement::paramSetter):
(KJS::HTMLElement::appletSetter):
(KJS::HTMLElement::mapSetter):
(KJS::HTMLElement::areaSetter):
(KJS::HTMLElement::scriptSetter):
(KJS::HTMLElement::tableSetter):
(KJS::HTMLElement::tableCaptionSetter):
(KJS::HTMLElement::tableColSetter):
(KJS::HTMLElement::tableSectionSetter):
(KJS::HTMLElement::tableRowSetter):
(KJS::HTMLElement::tableCellSetter):
(KJS::HTMLElement::frameSetSetter):
(KJS::HTMLElement::frameSetter):
(KJS::HTMLElement::iFrameSetter):
(KJS::HTMLElement::marqueeSetter):
(KJS::HTMLElement::putValueProperty):
(KJS::HTMLCollection::lengthGetter):
(KJS::HTMLCollection::indexGetter):
(KJS::HTMLCollection::nameGetter):
(KJS::HTMLCollection::getOwnPropertySlot):
(KJS::KJS::HTMLCollection::callAsFunction):
(KJS::KJS::HTMLCollection::getNamedItems):
(KJS::KJS::HTMLCollectionProtoFunc::callAsFunction):
(KJS::HTMLSelectCollection::selectedIndexGetter):
(KJS::KJS::HTMLSelectCollection::put):
(KJS::OptionConstructorImp::construct):
(KJS::ImageConstructorImp::construct):
(KJS::Image::getValueProperty):
(KJS::Image::put):
(KJS::Image::putValueProperty):
(KJS::isGradient):
(KJS::isImagePattern):
(KJS::KJS::Context2DFunction::callAsFunction):
(KJS::Context2D::getValueProperty):
(KJS::Context2D::put):
(KJS::colorRefFromValue):
(KJS::colorFromValue):
(KJS::Context2D::setShadow):
(KJS::Context2D::updateFillImagePattern):
(KJS::Context2D::updateStrokeImagePattern):
(KJS::Context2D::putValueProperty):
(KJS::Context2D::Context2D):
(KJS::Context2D::mark):
(KJS::GradientFunction::callAsFunction):
(KJS::Gradient::getValueProperty):
(KJS::Gradient::put):
(KJS::Gradient::putValueProperty):
(KJS::ImagePattern::getValueProperty):
(KJS::ImagePattern::put):
(KJS::ImagePattern::putValueProperty):
* khtml/ecma/kjs_html.h:
* khtml/ecma/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
(KJS::Plugins::getValueProperty):
(KJS::Plugins::indexGetter):
(KJS::Plugins::nameGetter):
(KJS::MimeTypes::getValueProperty):
(KJS::MimeTypes::indexGetter):
(KJS::MimeTypes::nameGetter):
(KJS::Plugin::getValueProperty):
(KJS::Plugin::indexGetter):
(KJS::Plugin::nameGetter):
(KJS::MimeType::getValueProperty):
(KJS::PluginsFunc::callAsFunction):
(KJS::NavigatorFunc::callAsFunction):
* khtml/ecma/kjs_navigator.h:
* khtml/ecma/kjs_proxy.cpp:
(KJSProxyImpl::evaluate):
(TestFunctionImp::callAsFunction):
(KJSProxyImpl::initScript):
(KJSProxy::proxy):
* khtml/ecma/kjs_range.cpp:
(KJS::DOMRange::getValueProperty):
(KJS::DOMRangeProtoFunc::callAsFunction):
(KJS::RangeConstructor::getValueProperty):
* khtml/ecma/kjs_range.h:
* khtml/ecma/kjs_traversal.cpp:
(KJS::DOMNodeIterator::getValueProperty):
(KJS::DOMNodeIteratorProtoFunc::callAsFunction):
(KJS::NodeFilterConstructor::getValueProperty):
(KJS::getNodeFilterConstructor):
(KJS::DOMNodeFilterProtoFunc::callAsFunction):
(KJS::DOMTreeWalker::getValueProperty):
(KJS::DOMTreeWalker::put):
(KJS::DOMTreeWalkerProtoFunc::callAsFunction):
(KJS::JSNodeFilterCondition::JSNodeFilterCondition):
(KJS::JSNodeFilterCondition::acceptNode):
* khtml/ecma/kjs_traversal.h:
* khtml/ecma/kjs_views.cpp:
(KJS::DOMAbstractView::getValueProperty):
(KJS::DOMAbstractViewFunc::callAsFunction):
* khtml/ecma/kjs_views.h:
* khtml/ecma/kjs_window.cpp:
(KJS::Screen::getValueProperty):
(KJS::Window::retrieveWindow):
(KJS::Window::retrieveActive):
(KJS::Window::retrieve):
(KJS::parseFeatures):
(KJS::showModalDialog):
(KJS::Window::getValueProperty):
(KJS::Window::childFrameGetter):
(KJS::Window::namedFrameGetter):
(KJS::Window::indexGetter):
(KJS::Window::namedItemGetter):
(KJS::Window::put):
(KJS::Window::installTimeout):
(KJS::Window::setListener):
(KJS::Window::getListener):
(KJS::Window::getJSEventListener):
(KJS::Window::getJSUnprotectedEventListener):
(KJS::Window::getJSLazyEventListener):
(KJS::WindowFunc::callAsFunction):
(KJS::ScheduledAction::ScheduledAction):
(KJS::ScheduledAction::execute):
(KJS::WindowQObject::installTimeout):
(KJS::FrameArray::getValueProperty):
(KJS::FrameArray::indexGetter):
(KJS::FrameArray::nameGetter):
(KJS::Location::getValueProperty):
(KJS::Location::put):
(KJS::Location::toPrimitive):
(KJS::LocationFunc::callAsFunction):
(KJS::Selection::getValueProperty):
(KJS::Selection::toPrimitive):
(KJS::SelectionFunc::callAsFunction):
(KJS::BarInfo::getValueProperty):
(KJS::History::getValueProperty):
(KJS::HistoryFunc::callAsFunction):
(KJS::Konqueror::get):
(KJS::KonquerorFunc::callAsFunction):
* khtml/ecma/kjs_window.h:
* khtml/ecma/xmlhttprequest.cpp:
(KJS::XMLHttpRequestConstructorImp::construct):
(KJS::XMLHttpRequest::getValueProperty):
(KJS::XMLHttpRequest::put):
(KJS::XMLHttpRequest::putValueProperty):
(KJS::XMLHttpRequest::getAllResponseHeaders):
(KJS::XMLHttpRequest::getResponseHeader):
(KJS::XMLHttpRequest::getStatus):
(KJS::XMLHttpRequest::getStatusText):
(KJS::XMLHttpRequestProtoFunc::callAsFunction):
* khtml/ecma/xmlhttprequest.h:
* khtml/ecma/xmlserializer.cpp:
(KJS::XMLSerializerConstructorImp::construct):
(KJS::XMLSerializerProtoFunc::callAsFunction):
* khtml/ecma/xmlserializer.h:
* kwq/DOMUtility.mm:
(KJS::ScriptInterpreter::createObjcInstanceForValue):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::bindingRootObject):
(KWQKHTMLPart::windowScriptObject):
(KWQKHTMLPart::windowScriptNPObject):
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge executionContextForView:]):
* kwq/WebCoreScriptDebugger.mm:
(WebCoreScriptDebuggerImp::callEvent):
(WebCoreScriptDebuggerImp::returnEvent):
(-[WebCoreScriptDebugger finalize]):
(-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
(-[WebCoreScriptCallFrame scopeChain]):
(-[WebCoreScriptCallFrame evaluateWebScript:]):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@10084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/kjs/string_object.cpp b/JavaScriptCore/kjs/string_object.cpp
index 36563c3..a115697 100644
--- a/JavaScriptCore/kjs/string_object.cpp
+++ b/JavaScriptCore/kjs/string_object.cpp
@@ -50,15 +50,15 @@
setInternalValue(String(string));
}
-Value StringInstanceImp::lengthGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot &slot)
+ValueImp *StringInstanceImp::lengthGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot &slot)
{
- return Value(static_cast<StringInstanceImp *>(slot.slotBase())->internalValue().toString(exec).size());
+ return jsNumber(static_cast<StringInstanceImp *>(slot.slotBase())->internalValue()->toString(exec).size());
}
-Value StringInstanceImp::indexGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot &slot)
+ValueImp *StringInstanceImp::indexGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot &slot)
{
- const UChar c = static_cast<StringInstanceImp *>(slot.slotBase())->internalValue().toString(exec)[slot.index()];
- return Value(UString(&c, 1));
+ const UChar c = static_cast<StringInstanceImp *>(slot.slotBase())->internalValue()->toString(exec)[slot.index()];
+ return jsString(UString(&c, 1));
}
bool StringInstanceImp::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName, PropertySlot &slot)
@@ -71,7 +71,7 @@
bool ok;
const unsigned index = propertyName.toArrayIndex(&ok);
if (ok) {
- const UString s = internalValue().toString(exec);
+ const UString s = internalValue()->toString(exec);
const unsigned length = s.size();
if (index >= length)
return false;
@@ -82,7 +82,7 @@
return ObjectImp::getOwnPropertySlot(exec, propertyName, slot);
}
-void StringInstanceImp::put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr)
+void StringInstanceImp::put(ExecState *exec, const Identifier &propertyName, ValueImp *value, int attr)
{
if (propertyName == lengthPropertyName)
return;
@@ -142,10 +142,8 @@
ObjectPrototypeImp *objProto)
: StringInstanceImp(objProto)
{
- Value protect(this);
// The constructor will be added later, after StringObjectImp has been built
- putDirect(lengthPropertyName, NumberImp::zero(), DontDelete|ReadOnly|DontEnum);
-
+ putDirect(lengthPropertyName, jsZero(), DontDelete|ReadOnly|DontEnum);
}
bool StringPrototypeImp::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName, PropertySlot &slot)
@@ -157,10 +155,9 @@
StringProtoFuncImp::StringProtoFuncImp(ExecState *exec, int i, int len)
: InternalFunctionImp(
- static_cast<FunctionPrototypeImp*>(exec->lexicalInterpreter()->builtinFunctionPrototype().imp())
+ static_cast<FunctionPrototypeImp*>(exec->lexicalInterpreter()->builtinFunctionPrototype())
), id(i)
{
- Value protect(this);
putDirect(lengthPropertyName, len, DontDelete|ReadOnly|DontEnum);
}
@@ -171,8 +168,8 @@
static inline bool regExpIsGlobal(RegExpImp *regExp, ExecState *exec)
{
- Value globalProperty = regExp->get(exec,"global");
- return globalProperty.type() != UndefinedType && globalProperty.toBoolean(exec);
+ ValueImp *globalProperty = regExp->get(exec,"global");
+ return !globalProperty->isUndefined() && globalProperty->toBoolean(exec);
}
static inline void expandSourceRanges(UString::Range * & array, int& count, int& capacity)
@@ -259,22 +256,22 @@
return substitutedReplacement;
}
-static Value replace(ExecState *exec, const UString &source, const Value &pattern, const Value &replacement)
+static ValueImp *replace(ExecState *exec, const UString &source, ValueImp *pattern, ValueImp *replacement)
{
ObjectImp *replacementFunction = 0;
UString replacementString;
- if (replacement.type() == ObjectType && replacement.toObject(exec).implementsCall())
- replacementFunction = replacement.toObject(exec).imp();
+ if (replacement->isObject() && replacement->toObject(exec)->implementsCall())
+ replacementFunction = replacement->toObject(exec);
else
- replacementString = replacement.toString(exec);
+ replacementString = replacement->toString(exec);
- if (pattern.type() == ObjectType && pattern.toObject(exec).inherits(&RegExpImp::info)) {
- RegExpImp* imp = static_cast<RegExpImp *>( pattern.toObject(exec).imp() );
+ if (pattern->isObject() && pattern->toObject(exec)->inherits(&RegExpImp::info)) {
+ RegExpImp* imp = static_cast<RegExpImp *>( pattern->toObject(exec) );
RegExp *reg = imp->regExp();
bool global = regExpIsGlobal(imp, exec);
- RegExpObjectImp* regExpObj = static_cast<RegExpObjectImp*>(exec->lexicalInterpreter()->builtinRegExp().imp());
+ RegExpObjectImp* regExpObj = static_cast<RegExpObjectImp*>(exec->lexicalInterpreter()->builtinRegExp());
int matchIndex = 0;
int lastIndex = 0;
@@ -302,20 +299,20 @@
int completeMatchStart = (*ovector)[0];
List args;
- args.append(Value(matchString));
+ args.append(jsString(matchString));
for (unsigned i = 0; i < reg->subPatterns(); i++) {
int matchStart = (*ovector)[(i + 1) * 2];
int matchLen = (*ovector)[(i + 1) * 2 + 1] - matchStart;
- args.append(Value(source.substr(matchStart, matchLen)));
+ args.append(jsString(source.substr(matchStart, matchLen)));
}
- args.append(Value(completeMatchStart));
- args.append(Value(source));
+ args.append(jsNumber(completeMatchStart));
+ args.append(jsString(source));
replacementString = replacementFunction->call(exec, exec->dynamicInterpreter()->globalObject(),
- args).toString(exec);
+ args)->toString(exec);
}
UString substitutedReplacement = substituteBackreferences(replacementString, source, ovector, reg);
@@ -344,7 +341,7 @@
}
// First arg is a string
- UString patternString = pattern.toString(exec);
+ UString patternString = pattern->toString(exec);
int matchPos = source.find(patternString);
int matchLen = patternString.size();
// Do the replacement
@@ -354,31 +351,31 @@
if (replacementFunction) {
List args;
- args.append(Value(source.substr(matchPos, matchLen)));
- args.append(Value(matchPos));
- args.append(Value(source));
+ args.append(jsString(source.substr(matchPos, matchLen)));
+ args.append(jsNumber(matchPos));
+ args.append(jsString(source));
replacementString = replacementFunction->call(exec, exec->dynamicInterpreter()->globalObject(),
- args).toString(exec);
+ args)->toString(exec);
}
return String(source.substr(0, matchPos) + replacementString + source.substr(matchPos + matchLen));
}
// ECMA 15.5.4.2 - 15.5.4.20
-Value StringProtoFuncImp::call(ExecState *exec, Object &thisObj, const List &args)
+ValueImp *StringProtoFuncImp::callAsFunction(ExecState *exec, ObjectImp *thisObj, const List &args)
{
- Value result;
+ ValueImp *result = NULL;
// toString and valueOf are no generic function.
if (id == ToString || id == ValueOf) {
- if (thisObj.isNull() || !thisObj.inherits(&StringInstanceImp::info)) {
- Object err = Error::create(exec,TypeError);
+ if (!thisObj || !thisObj->inherits(&StringInstanceImp::info)) {
+ ObjectImp *err = Error::create(exec,TypeError);
exec->setException(err);
return err;
}
- return String(thisObj.internalValue().toString(exec));
+ return String(thisObj->internalValue()->toString(exec));
}
UString u, u2, u3;
@@ -386,11 +383,11 @@
double dpos;
double d = 0.0;
- UString s = thisObj.toString(exec);
+ UString s = thisObj->toString(exec);
int len = s.size();
- Value a0 = args[0];
- Value a1 = args[1];
+ ValueImp *a0 = args[0];
+ ValueImp *a1 = args[1];
switch (id) {
case ToString:
@@ -400,7 +397,7 @@
case CharAt:
// Other browsers treat an omitted parameter as 0 rather than NaN.
// That doesn't match the ECMA standard, but is needed for site compatibility.
- dpos = a0.isA(UndefinedType) ? 0 : a0.toInteger(exec);
+ dpos = a0->isUndefined() ? 0 : a0->toInteger(exec);
if (dpos >= 0 && dpos < len) // false for NaN
u = s.substr(static_cast<int>(dpos), 1);
else
@@ -410,26 +407,26 @@
case CharCodeAt:
// Other browsers treat an omitted parameter as 0 rather than NaN.
// That doesn't match the ECMA standard, but is needed for site compatibility.
- dpos = a0.isA(UndefinedType) ? 0 : a0.toInteger(exec);
+ dpos = a0->isUndefined() ? 0 : a0->toInteger(exec);
if (dpos >= 0 && dpos < len) // false for NaN
result = Number(s[static_cast<int>(dpos)].unicode());
else
- result = Number(NaN);
+ result = jsNaN();
break;
case Concat: {
ListIterator it = args.begin();
for ( ; it != args.end() ; ++it) {
- s += it->dispatchToString(exec);
+ s += it->toString(exec);
}
result = String(s);
break;
}
case IndexOf:
- u2 = a0.toString(exec);
- if (a1.type() == UndefinedType)
+ u2 = a0->toString(exec);
+ if (a1->isUndefined())
dpos = 0;
else {
- dpos = a1.toInteger(exec);
+ dpos = a1->toInteger(exec);
if (dpos >= 0) { // false for NaN
if (dpos > len)
dpos = len;
@@ -439,12 +436,12 @@
result = Number(s.find(u2, static_cast<int>(dpos)));
break;
case LastIndexOf:
- u2 = a0.toString(exec);
- d = a1.toNumber(exec);
- if (a1.type() == UndefinedType || KJS::isNaN(d))
+ u2 = a0->toString(exec);
+ d = a1->toNumber(exec);
+ if (a1->isUndefined() || KJS::isNaN(d))
dpos = len;
else {
- dpos = a1.toInteger(exec);
+ dpos = a1->toInteger(exec);
if (dpos >= 0) { // false for NaN
if (dpos > len)
dpos = len;
@@ -458,9 +455,9 @@
u = s;
RegExp *reg, *tmpReg = 0;
RegExpImp *imp = 0;
- if (a0.isA(ObjectType) && a0.toObject(exec).inherits(&RegExpImp::info))
+ if (a0->isObject() && a0->getObject()->inherits(&RegExpImp::info))
{
- imp = static_cast<RegExpImp *>( a0.toObject(exec).imp() );
+ imp = static_cast<RegExpImp *>(a0);
reg = imp->regExp();
}
else
@@ -469,9 +466,9 @@
* If regexp is not an object whose [[Class]] property is "RegExp", it is
* replaced with the result of the expression new RegExp(regexp).
*/
- reg = tmpReg = new RegExp(a0.toString(exec), RegExp::None);
+ reg = tmpReg = new RegExp(a0->toString(exec), RegExp::None);
}
- RegExpObjectImp* regExpObj = static_cast<RegExpObjectImp*>(exec->lexicalInterpreter()->builtinRegExp().imp());
+ RegExpObjectImp* regExpObj = static_cast<RegExpObjectImp*>(exec->lexicalInterpreter()->builtinRegExp());
int **ovector = regExpObj->registerRegexp(reg, u);
UString mstr = reg->match(u, -1, &pos, ovector);
if (id == Search) {
@@ -492,7 +489,7 @@
int lastIndex = 0;
while (pos >= 0) {
if (mstr.isNull())
- list.append(UndefinedImp::staticUndefined);
+ list.append(jsUndefined());
else
list.append(String(mstr));
lastIndex = pos;
@@ -508,7 +505,7 @@
// other browsers and because Null is a false value.
result = Null();
} else {
- result = exec->lexicalInterpreter()->builtinArray().construct(exec, list);
+ result = exec->lexicalInterpreter()->builtinArray()->construct(exec, list);
}
}
}
@@ -521,7 +518,7 @@
case Slice: // http://developer.netscape.com/docs/manuals/js/client/jsref/string.htm#1194366
{
// The arg processing is very much like ArrayProtoFunc::Slice
- double begin = args[0].toInteger(exec);
+ double begin = args[0]->toInteger(exec);
if (begin >= 0) { // false for NaN
if (begin > len)
begin = len;
@@ -531,8 +528,8 @@
begin = 0;
}
double end = len;
- if (args[1].type() != UndefinedType) {
- end = args[1].toInteger(exec);
+ if (!args[1]->isUndefined()) {
+ end = args[1]->toInteger(exec);
if (end >= 0) { // false for NaN
if (end > len)
end = len;
@@ -547,18 +544,18 @@
break;
}
case Split: {
- Object constructor = exec->lexicalInterpreter()->builtinArray();
- Object res = Object::dynamicCast(constructor.construct(exec,List::empty()));
+ ObjectImp *constructor = exec->lexicalInterpreter()->builtinArray();
+ ObjectImp *res = static_cast<ObjectImp *>(constructor->construct(exec,List::empty()));
result = res;
u = s;
i = p0 = 0;
- uint32_t limit = a1.type() == UndefinedType ? 0xFFFFFFFFU : a1.toUInt32(exec);
- if (a0.type() == ObjectType && Object::dynamicCast(a0).inherits(&RegExpImp::info)) {
- Object obj0 = Object::dynamicCast(a0);
- RegExp reg(obj0.get(exec,"source").toString(exec));
+ uint32_t limit = a1->isUndefined() ? 0xFFFFFFFFU : a1->toUInt32(exec);
+ if (a0->isObject() && static_cast<ObjectImp *>(a0)->inherits(&RegExpImp::info)) {
+ ObjectImp *obj0 = static_cast<ObjectImp *>(a0);
+ RegExp reg(obj0->get(exec,"source")->toString(exec));
if (u.isEmpty() && !reg.match(u, 0).isNull()) {
// empty string matched by regexp -> empty array
- res.put(exec,lengthPropertyName, Number(0));
+ res->put(exec,lengthPropertyName, Number(0));
break;
}
pos = 0;
@@ -572,13 +569,13 @@
break;
pos = mpos + (mstr.isEmpty() ? 1 : mstr.size());
if (mpos != p0 || !mstr.isEmpty()) {
- res.put(exec,i, String(u.substr(p0, mpos-p0)));
+ res->put(exec,i, String(u.substr(p0, mpos-p0)));
p0 = mpos + mstr.size();
i++;
}
}
} else {
- u2 = a0.toString(exec);
+ u2 = a0->toString(exec);
if (u2.isEmpty()) {
if (u.isEmpty()) {
// empty separator matches empty string -> empty array
@@ -586,11 +583,11 @@
break;
} else {
while (static_cast<uint32_t>(i) != limit && i < u.size()-1)
- res.put(exec, i++, String(u.substr(p0++, 1)));
+ res->put(exec, i++, String(u.substr(p0++, 1)));
}
} else {
while (static_cast<uint32_t>(i) != limit && (pos = u.find(u2, p0)) >= 0) {
- res.put(exec, i, String(u.substr(p0, pos-p0)));
+ res->put(exec, i, String(u.substr(p0, pos-p0)));
p0 = pos + u2.size();
i++;
}
@@ -598,13 +595,13 @@
}
// add remaining string, if any
if (static_cast<uint32_t>(i) != limit)
- res.put(exec, i++, String(u.substr(p0)));
- res.put(exec,lengthPropertyName, Number(i));
+ res->put(exec, i++, String(u.substr(p0)));
+ res->put(exec,lengthPropertyName, Number(i));
}
break;
case Substr: {
- double d = a0.toInteger(exec);
- double d2 = a1.toInteger(exec);
+ double d = a0->toInteger(exec);
+ double d2 = a1->toInteger(exec);
if (!(d >= 0)) { // true for NaN
d += len;
if (!(d >= 0)) // true for NaN
@@ -622,8 +619,8 @@
break;
}
case Substring: {
- double start = a0.toNumber(exec);
- double end = a1.toNumber(exec);
+ double start = a0->toNumber(exec);
+ double end = a1->toNumber(exec);
if (KJS::isNaN(start))
start = 0;
if (KJS::isNaN(end))
@@ -636,7 +633,7 @@
start = len;
if (end > len)
end = len;
- if (a1.type() == UndefinedType)
+ if (a1->isUndefined())
end = len;
if (start > end) {
double temp = end;
@@ -689,16 +686,16 @@
result = String("<sup>" + s + "</sup>");
break;
case Fontcolor:
- result = String("<font color=\"" + a0.toString(exec) + "\">" + s + "</font>");
+ result = String("<font color=\"" + a0->toString(exec) + "\">" + s + "</font>");
break;
case Fontsize:
- result = String("<font size=\"" + a0.toString(exec) + "\">" + s + "</font>");
+ result = String("<font size=\"" + a0->toString(exec) + "\">" + s + "</font>");
break;
case Anchor:
- result = String("<a name=\"" + a0.toString(exec) + "\">" + s + "</a>");
+ result = String("<a name=\"" + a0->toString(exec) + "\">" + s + "</a>");
break;
case Link:
- result = String("<a href=\"" + a0.toString(exec) + "\">" + s + "</a>");
+ result = String("<a href=\"" + a0->toString(exec) + "\">" + s + "</a>");
break;
#endif
}
@@ -713,7 +710,6 @@
StringPrototypeImp *stringProto)
: InternalFunctionImp(funcProto)
{
- Value protect(this);
// ECMA 15.5.3.1 String.prototype
putDirect(prototypePropertyName, stringProto, DontEnum|DontDelete|ReadOnly);
@@ -721,7 +717,7 @@
putDirect(fromCharCode, new StringObjectFuncImp(exec,funcProto), DontEnum);
// no. of arguments for constructor
- putDirect(lengthPropertyName, NumberImp::one(), ReadOnly|DontDelete|DontEnum);
+ putDirect(lengthPropertyName, jsOne(), ReadOnly|DontDelete|DontEnum);
}
@@ -731,12 +727,12 @@
}
// ECMA 15.5.2
-Object StringObjectImp::construct(ExecState *exec, const List &args)
+ObjectImp *StringObjectImp::construct(ExecState *exec, const List &args)
{
- ObjectImp *proto = exec->lexicalInterpreter()->builtinStringPrototype().imp();
+ ObjectImp *proto = exec->lexicalInterpreter()->builtinStringPrototype();
if (args.size() == 0)
- return Object(new StringInstanceImp(proto));
- return Object(new StringInstanceImp(proto, args.begin()->dispatchToString(exec)));
+ return new StringInstanceImp(proto);
+ return new StringInstanceImp(proto, args.begin()->toString(exec));
}
bool StringObjectImp::implementsCall() const
@@ -745,13 +741,13 @@
}
// ECMA 15.5.1
-Value StringObjectImp::call(ExecState *exec, Object &/*thisObj*/, const List &args)
+ValueImp *StringObjectImp::callAsFunction(ExecState *exec, ObjectImp */*thisObj*/, const List &args)
{
if (args.isEmpty())
return String("");
else {
- Value v = args[0];
- return String(v.toString(exec));
+ ValueImp *v = args[0];
+ return String(v->toString(exec));
}
}
@@ -761,8 +757,7 @@
StringObjectFuncImp::StringObjectFuncImp(ExecState *exec, FunctionPrototypeImp *funcProto)
: InternalFunctionImp(funcProto)
{
- Value protect(this);
- putDirect(lengthPropertyName, NumberImp::one(), DontDelete|ReadOnly|DontEnum);
+ putDirect(lengthPropertyName, jsOne(), DontDelete|ReadOnly|DontEnum);
}
bool StringObjectFuncImp::implementsCall() const
@@ -770,7 +765,7 @@
return true;
}
-Value StringObjectFuncImp::call(ExecState *exec, Object &/*thisObj*/, const List &args)
+ValueImp *StringObjectFuncImp::callAsFunction(ExecState *exec, ObjectImp */*thisObj*/, const List &args)
{
UString s;
if (args.size()) {