Ignore:
Timestamp:
Aug 7, 2005, 9:07:46 PM (20 years ago)
Author:
darin
Message:

JavaScriptCore:

Rubber stamped by Maciej.

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.

  • 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:]):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/array_object.cpp

    r10076 r10084  
    2121 */
    2222
     23#include "array_object.h"
     24
     25#include "error_object.h"
     26#include "internal.h"
     27#include "interpreter.h"
     28#include "object.h"
     29#include "operations.h"
     30#include "reference_list.h"
     31#include "types.h"
    2332#include "value.h"
    24 #include "object.h"
    25 #include "types.h"
    26 #include "interpreter.h"
    27 #include "operations.h"
    28 #include "array_object.h"
    29 #include "internal.h"
    30 #include "error_object.h"
    3133
    3234#include "array_object.lut.h"
     
    6264  unsigned l = length;
    6365  for (unsigned i = 0; i < l; ++i) {
    64     storage[i] = (it++).imp();
     66    storage[i] = it++;
    6567  }
    6668}
     
    7173}
    7274
    73 Value ArrayInstanceImp::lengthGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot& slot)
     75ValueImp *ArrayInstanceImp::lengthGetter(ExecState *exec, const Identifier& propertyName, const PropertySlot& slot)
    7476{
    7577  return Number(static_cast<ArrayInstanceImp *>(slot.slotBase())->length);
     
    9092    if (index < storageLength) {
    9193      ValueImp *v = storage[index];
    92       if (!v || v == UndefinedImp::staticUndefined)
    93         return false;
    94      
     94      if (!v || v->isUndefined())
     95        return false;     
    9596      slot.setValueSlot(this, &storage[index]);
    9697      return true;
     
    107108  if (index < storageLength) {
    108109    ValueImp *v = storage[index];
    109     if (!v || v == UndefinedImp::staticUndefined)
     110    if (!v || v->isUndefined())
    110111      return false;
    111    
    112112    slot.setValueSlot(this, &storage[index]);
    113113    return true;
     
    118118
    119119// Special implementation of [[Put]] - see ECMA 15.4.5.1
    120 void ArrayInstanceImp::put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr)
     120void ArrayInstanceImp::put(ExecState *exec, const Identifier &propertyName, ValueImp *value, int attr)
    121121{
    122122  if (propertyName == lengthPropertyName) {
    123     setLength(value.toUInt32(exec), exec);
     123    setLength(value->toUInt32(exec), exec);
    124124    return;
    125125  }
     
    135135}
    136136
    137 void ArrayInstanceImp::put(ExecState *exec, unsigned index, const Value &value, int attr)
     137void ArrayInstanceImp::put(ExecState *exec, unsigned index, ValueImp *value, int attr)
    138138{
    139139  if (index < sparseArrayCutoff && index >= storageLength) {
     
    146146
    147147  if (index < storageLength) {
    148     storage[index] = value.imp();
     148    storage[index] = value;
    149149    return;
    150150  }
     
    190190
    191191  // avoid fetching this every time through the loop
    192   ValueImp *undefined = UndefinedImp::staticUndefined;
     192  ValueImp *undefined = jsUndefined();
    193193
    194194  for (unsigned i = 0; i < storageLength; ++i) {
     
    232232    ReferenceList sparseProperties;
    233233   
    234     _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, Object(this));
     234    _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, this);
    235235   
    236236    ReferenceListIterator it = sparseProperties.begin();
     
    266266    ValueImp *va = *(ValueImp **)a;
    267267    ValueImp *vb = *(ValueImp **)b;
    268     if (va->dispatchType() == UndefinedType) {
    269         return vb->dispatchType() == UndefinedType ? 0 : 1;
    270     }
    271     if (vb->dispatchType() == UndefinedType) {
     268    if (va->isUndefined()) {
     269        return vb->isUndefined() ? 0 : 1;
     270    }
     271    if (vb->isUndefined()) {
    272272        return -1;
    273273    }
    274     return compare(va->dispatchToString(exec), vb->dispatchToString(exec));
     274    return compare(va->toString(exec), vb->toString(exec));
    275275}
    276276
     
    297297    ObjectImp *compareFunction;
    298298    List arguments;
    299     Object globalObject;
     299    ObjectImp *globalObject;
    300300};
    301301
     
    308308    ValueImp *va = *(ValueImp **)a;
    309309    ValueImp *vb = *(ValueImp **)b;
    310     if (va->dispatchType() == UndefinedType) {
    311         return vb->dispatchType() == UndefinedType ? 0 : 1;
    312     }
    313     if (vb->dispatchType() == UndefinedType) {
     310    if (va->isUndefined()) {
     311        return vb->isUndefined() ? 0 : 1;
     312    }
     313    if (vb->isUndefined()) {
    314314        return -1;
    315315    }
     
    319319    args->arguments.append(vb);
    320320    double compareResult = args->compareFunction->call
    321         (args->exec, args->globalObject, args->arguments).toNumber(args->exec);
     321        (args->exec, args->globalObject, args->arguments)->toNumber(args->exec);
    322322    return compareResult < 0 ? -1 : compareResult > 0 ? 1 : 0;
    323323}
    324324
    325 void ArrayInstanceImp::sort(ExecState *exec, Object &compareFunction)
     325void ArrayInstanceImp::sort(ExecState *exec, ObjectImp *compareFunction)
    326326{
    327327    int lengthNotIncludingUndefined = pushUndefinedObjectsToEnd(exec);
    328328   
    329     CompareWithCompareFunctionArguments args(exec, compareFunction.imp());
     329    CompareWithCompareFunctionArguments args(exec, compareFunction);
    330330    compareWithCompareFunctionArguments = &args;
    331331    qsort(storage, lengthNotIncludingUndefined, sizeof(ValueImp *), compareWithCompareFunctionForQSort);
     
    335335unsigned ArrayInstanceImp::pushUndefinedObjectsToEnd(ExecState *exec)
    336336{
    337     ValueImp *undefined = UndefinedImp::staticUndefined;
     337    ValueImp *undefined = jsUndefined();
    338338
    339339    unsigned o = 0;
     
    349349   
    350350    ReferenceList sparseProperties;
    351     _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, Object(this));
     351    _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, this);
    352352    unsigned newLength = o + sparseProperties.length();
    353353
     
    359359    while (it != sparseProperties.end()) {
    360360      Reference ref = it++;
    361       storage[o] = ref.getValue(exec).imp();
     361      storage[o] = ref.getValue(exec);
    362362      ObjectImp::deleteProperty(exec, ref.getPropertyName(exec));
    363363      o++;
     
    399399  : ArrayInstanceImp(objProto, 0)
    400400{
    401   Value protect(this);
    402401  setInternalValue(Null());
    403402}
     
    412411ArrayProtoFuncImp::ArrayProtoFuncImp(ExecState *exec, int i, int len)
    413412  : InternalFunctionImp(
    414     static_cast<FunctionPrototypeImp*>(exec->lexicalInterpreter()->builtinFunctionPrototype().imp())
     413    static_cast<FunctionPrototypeImp*>(exec->lexicalInterpreter()->builtinFunctionPrototype())
    415414    ), id(i)
    416415{
    417   Value protect(this);
    418416  put(exec,lengthPropertyName,Number(len),DontDelete|ReadOnly|DontEnum);
    419417}
     
    425423
    426424// ECMA 15.4.4
    427 Value ArrayProtoFuncImp::call(ExecState *exec, Object &thisObj, const List &args)
    428 {
    429   unsigned int length = thisObj.get(exec,lengthPropertyName).toUInt32(exec);
    430   ObjectImp *thisImp = thisObj.imp();
    431 
    432   Value result;
     425ValueImp *ArrayProtoFuncImp::callAsFunction(ExecState *exec, ObjectImp *thisObj, const List &args)
     426{
     427  unsigned length = thisObj->get(exec,lengthPropertyName)->toUInt32(exec);
     428
     429  ValueImp *result;
    433430 
    434431  switch (id) {
     
    436433  case ToString:
    437434
    438     if (!thisObj.inherits(&ArrayInstanceImp::info)) {
    439       Object err = Error::create(exec,TypeError);
     435    if (!thisObj->inherits(&ArrayInstanceImp::info)) {
     436      ObjectImp *err = Error::create(exec,TypeError);
    440437      exec->setException(err);
    441438      return err;
     
    447444    UString str = "";
    448445
    449     if (args[0].type() != UndefinedType)
    450       separator = args[0].toString(exec);
     446    if (!args[0]->isUndefined())
     447      separator = args[0]->toString(exec);
    451448    for (unsigned int k = 0; k < length; k++) {
    452449      if (k >= 1)
    453450        str += separator;
    454451     
    455       Value element = thisObj.get(exec, k);
    456       if (element.type() == UndefinedType || element.type() == NullType)
     452      ValueImp *element = thisObj->get(exec, k);
     453      if (element->isUndefinedOrNull())
    457454        continue;
    458455
    459456      bool fallback = false;
    460457      if (id == ToLocaleString) {
    461         Object o = element.toObject(exec);
    462         Object conversionFunction =
    463           Object::dynamicCast(o.get(exec, toLocaleStringPropertyName));
    464         if (conversionFunction.isValid() &&
    465             conversionFunction.implementsCall()) {
    466           str += conversionFunction.call(exec, o, List()).toString(exec);
     458        ObjectImp *o = element->toObject(exec);
     459        ValueImp *conversionFunction = o->get(exec, toLocaleStringPropertyName);
     460        if (conversionFunction->isObject() && static_cast<ObjectImp *>(conversionFunction)->implementsCall()) {
     461          str += static_cast<ObjectImp *>(conversionFunction)->call(exec, o, List())->toString(exec);
    467462        } else {
    468463          // try toString() fallback
     
    472467
    473468      if (id == ToString || id == Join || fallback) {
    474         if (element.type() == ObjectType) {
    475           Object o = Object::dynamicCast(element);
    476           Object conversionFunction =
    477             Object::dynamicCast(o.get(exec, toStringPropertyName));
    478           if (conversionFunction.isValid() &&
    479               conversionFunction.implementsCall()) {
    480             str += conversionFunction.call(exec, o, List()).toString(exec);
     469        if (element->isObject()) {
     470          ObjectImp *o = static_cast<ObjectImp *>(element);
     471          ValueImp *conversionFunction = o->get(exec, toStringPropertyName);
     472          if (conversionFunction->isObject() && static_cast<ObjectImp *>(conversionFunction)->implementsCall()) {
     473            str += static_cast<ObjectImp *>(conversionFunction)->call(exec, o, List())->toString(exec);
    481474          } else {
    482             UString msg = "Can't convert " + o.className() +
    483               " object to string";
    484             Object error = Error::create(exec, RangeError,
    485                 msg.cstring().c_str());
     475            UString msg = "Can't convert " + o->className() + " object to string";
     476            ObjectImp *error = Error::create(exec, RangeError, msg.cstring().c_str());
    486477            exec->setException(error);
    487478            return error;
    488479          }
    489480        } else {
    490           str += element.toString(exec);
     481          str += element->toString(exec);
    491482        }
    492483      }
     
    499490  }
    500491  case Concat: {
    501     Object arr = Object::dynamicCast(exec->lexicalInterpreter()->builtinArray().construct(exec,List::empty()));
     492    ObjectImp *arr = static_cast<ObjectImp *>(exec->lexicalInterpreter()->builtinArray()->construct(exec,List::empty()));
    502493    int n = 0;
    503     Value curArg = thisObj;
    504     Object curObj = Object::dynamicCast(thisObj);
     494    ValueImp *curArg = thisObj;
     495    ObjectImp *curObj = static_cast<ObjectImp *>(thisObj);
    505496    ListIterator it = args.begin();
    506497    for (;;) {
    507       if (curArg.type() == ObjectType &&
    508           curObj.inherits(&ArrayInstanceImp::info)) {
     498      if (curArg->isObject() &&
     499          curObj->inherits(&ArrayInstanceImp::info)) {
    509500        unsigned int k = 0;
    510501        // Older versions tried to optimize out getting the length of thisObj
    511502        // by checking for n != 0, but that doesn't work if thisObj is an empty array.
    512         length = curObj.get(exec,lengthPropertyName).toUInt32(exec);
     503        length = curObj->get(exec,lengthPropertyName)->toUInt32(exec);
    513504        while (k < length) {
    514           Value v;
    515           if (curObj.imp()->getProperty(exec, k, v))
    516             arr.put(exec, n, v);
     505          ValueImp *v;
     506          if (curObj->getProperty(exec, k, v))
     507            arr->put(exec, n, v);
    517508          n++;
    518509          k++;
    519510        }
    520511      } else {
    521         arr.put(exec, n, curArg);
     512        arr->put(exec, n, curArg);
    522513        n++;
    523514      }
     
    525516        break;
    526517      curArg = *it;
    527       curObj = Object::dynamicCast(it++); // may be 0
    528     }
    529     arr.put(exec,lengthPropertyName, Number(n), DontEnum | DontDelete);
     518      curObj = static_cast<ObjectImp *>(it++); // may be 0
     519    }
     520    arr->put(exec,lengthPropertyName, Number(n), DontEnum | DontDelete);
    530521
    531522    result = arr;
     
    534525  case Pop:{
    535526    if (length == 0) {
    536       thisObj.put(exec, lengthPropertyName, Number(length), DontEnum | DontDelete);
     527      thisObj->put(exec, lengthPropertyName, Number(length), DontEnum | DontDelete);
    537528      result = Undefined();
    538529    } else {
    539       result = thisObj.get(exec, length - 1);
    540       thisObj.put(exec, lengthPropertyName, Number(length - 1), DontEnum | DontDelete);
     530      result = thisObj->get(exec, length - 1);
     531      thisObj->put(exec, lengthPropertyName, Number(length - 1), DontEnum | DontDelete);
    541532    }
    542533    break;
     
    544535  case Push: {
    545536    for (int n = 0; n < args.size(); n++)
    546       thisObj.put(exec, length + n, args[n]);
     537      thisObj->put(exec, length + n, args[n]);
    547538    length += args.size();
    548     thisObj.put(exec,lengthPropertyName, Number(length), DontEnum | DontDelete);
     539    thisObj->put(exec,lengthPropertyName, Number(length), DontEnum | DontDelete);
    549540    result = Number(length);
    550541    break;
     
    556547    for (unsigned int k = 0; k < middle; k++) {
    557548      unsigned lk1 = length - k - 1;
    558       Value obj;
    559       Value obj2;
    560       bool has2 = thisImp->getProperty(exec, lk1, obj2);
    561       bool has1 = thisImp->getProperty(exec, k, obj);
     549      ValueImp *obj;
     550      ValueImp *obj2;
     551      bool has2 = thisObj->getProperty(exec, lk1, obj2);
     552      bool has1 = thisObj->getProperty(exec, k, obj);
    562553
    563554      if (has2)
    564         thisObj.put(exec, k, obj2);
     555        thisObj->put(exec, k, obj2);
    565556      else
    566         thisObj.deleteProperty(exec, k);
     557        thisObj->deleteProperty(exec, k);
    567558
    568559      if (has1)
    569         thisObj.put(exec, lk1, obj);
     560        thisObj->put(exec, lk1, obj);
    570561      else
    571         thisObj.deleteProperty(exec, lk1);
     562        thisObj->deleteProperty(exec, lk1);
    572563    }
    573564    result = thisObj;
     
    576567  case Shift: {
    577568    if (length == 0) {
    578       thisObj.put(exec, lengthPropertyName, Number(length), DontEnum | DontDelete);
     569      thisObj->put(exec, lengthPropertyName, Number(length), DontEnum | DontDelete);
    579570      result = Undefined();
    580571    } else {
    581       result = thisObj.get(exec, 0);
     572      result = thisObj->get(exec, 0);
    582573      for(unsigned int k = 1; k < length; k++) {
    583         Value obj;
    584         if (thisImp->getProperty(exec, k, obj))
    585           thisObj.put(exec, k-1, obj);
     574        ValueImp *obj;
     575        if (thisObj->getProperty(exec, k, obj))
     576          thisObj->put(exec, k-1, obj);
    586577        else
    587           thisObj.deleteProperty(exec, k-1);
    588       }
    589       thisObj.deleteProperty(exec, length - 1);
    590       thisObj.put(exec, lengthPropertyName, Number(length - 1), DontEnum | DontDelete);
     578          thisObj->deleteProperty(exec, k-1);
     579      }
     580      thisObj->deleteProperty(exec, length - 1);
     581      thisObj->put(exec, lengthPropertyName, Number(length - 1), DontEnum | DontDelete);
    591582    }
    592583    break;
     
    596587
    597588    // We return a new array
    598     Object resObj = Object::dynamicCast(exec->lexicalInterpreter()->builtinArray().construct(exec,List::empty()));
     589    ObjectImp *resObj = static_cast<ObjectImp *>(exec->lexicalInterpreter()->builtinArray()->construct(exec,List::empty()));
    599590    result = resObj;
    600591    double begin = 0;
    601     if (args[0].type() != UndefinedType) {
    602         begin = args[0].toInteger(exec);
     592    if (!args[0]->isUndefined()) {
     593        begin = args[0]->toInteger(exec);
    603594        if (begin >= 0) { // false for NaN
    604595            if (begin > length)
     
    611602    }
    612603    double end = length;
    613     if (args[1].type() != UndefinedType) {
    614       end = args[1].toInteger(exec);
     604    if (!args[1]->isUndefined()) {
     605      end = args[1]->toInteger(exec);
    615606      if (end < 0) { // false for NaN
    616607        end += length;
     
    628619    int e = static_cast<int>(end);
    629620    for(int k = b; k < e; k++, n++) {
    630       Value obj;
    631       if (thisImp->getProperty(exec, k, obj))
    632         resObj.put(exec, n, obj);
    633     }
    634     resObj.put(exec, lengthPropertyName, Number(n), DontEnum | DontDelete);
     621      ValueImp *obj;
     622      if (thisObj->getProperty(exec, k, obj))
     623        resObj->put(exec, n, obj);
     624    }
     625    resObj->put(exec, lengthPropertyName, Number(n), DontEnum | DontDelete);
    635626    break;
    636627  }
     
    639630    printf("KJS Array::Sort length=%d\n", length);
    640631    for ( unsigned int i = 0 ; i<length ; ++i )
    641       printf("KJS Array::Sort: %d: %s\n", i, thisObj.get(exec, i).toString(exec).ascii() );
     632      printf("KJS Array::Sort: %d: %s\n", i, thisObj->get(exec, i)->toString(exec).ascii() );
    642633#endif
    643     Object sortFunction;
    644     bool useSortFunction = (args[0].type() != UndefinedType);
    645     if (useSortFunction)
     634    ObjectImp *sortFunction = NULL;
     635    if (!args[0]->isUndefined())
    646636      {
    647         sortFunction = args[0].toObject(exec);
    648         if (!sortFunction.implementsCall())
    649           useSortFunction = false;
    650       }
    651    
    652     if (thisImp->classInfo() == &ArrayInstanceImp::info) {
    653       if (useSortFunction)
    654         ((ArrayInstanceImp *)thisImp)->sort(exec, sortFunction);
     637        sortFunction = args[0]->toObject(exec);
     638        if (!sortFunction->implementsCall())
     639          sortFunction = NULL;
     640      }
     641   
     642    if (thisObj->classInfo() == &ArrayInstanceImp::info) {
     643      if (sortFunction)
     644        ((ArrayInstanceImp *)thisObj)->sort(exec, sortFunction);
    655645      else
    656         ((ArrayInstanceImp *)thisImp)->sort(exec);
     646        ((ArrayInstanceImp *)thisObj)->sort(exec);
    657647      result = thisObj;
    658648      break;
     
    660650
    661651    if (length == 0) {
    662       thisObj.put(exec, lengthPropertyName, Number(0), DontEnum | DontDelete);
     652      thisObj->put(exec, lengthPropertyName, Number(0), DontEnum | DontDelete);
    663653      result = thisObj;
    664654      break;
     
    669659    for ( unsigned int i = 0 ; i<length-1 ; ++i )
    670660      {
    671         Value iObj = thisObj.get(exec,i);
     661        ValueImp *iObj = thisObj->get(exec,i);
    672662        unsigned int themin = i;
    673         Value minObj = iObj;
     663        ValueImp *minObj = iObj;
    674664        for ( unsigned int j = i+1 ; j<length ; ++j )
    675665          {
    676             Value jObj = thisObj.get(exec,j);
     666            ValueImp *jObj = thisObj->get(exec,j);
    677667            double cmp;
    678             if (jObj.type() == UndefinedType) {
     668            if (jObj->isUndefined()) {
    679669              cmp = 1; // don't check minObj because there's no need to differentiate == (0) from > (1)
    680             } else if (minObj.type() == UndefinedType) {
     670            } else if (minObj->isUndefined()) {
    681671              cmp = -1;
    682             } else if (useSortFunction) {
     672            } else if (sortFunction) {
    683673                List l;
    684674                l.append(jObj);
    685675                l.append(minObj);
    686                 cmp = sortFunction.call(exec, exec->dynamicInterpreter()->globalObject(), l).toNumber(exec);
     676                cmp = sortFunction->call(exec, exec->dynamicInterpreter()->globalObject(), l)->toNumber(exec);
    687677            } else {
    688               cmp = (jObj.toString(exec) < minObj.toString(exec)) ? -1 : 1;
     678              cmp = (jObj->toString(exec) < minObj->toString(exec)) ? -1 : 1;
    689679            }
    690680            if ( cmp < 0 )
     
    698688          {
    699689            //printf("KJS Array::Sort: swapping %d and %d\n", i, themin );
    700             thisObj.put( exec, i, minObj );
    701             thisObj.put( exec, themin, iObj );
     690            thisObj->put( exec, i, minObj );
     691            thisObj->put( exec, themin, iObj );
    702692          }
    703693      }
     
    705695    printf("KJS Array::Sort -- Resulting array:\n");
    706696    for ( unsigned int i = 0 ; i<length ; ++i )
    707       printf("KJS Array::Sort: %d: %s\n", i, thisObj.get(exec, i).toString(exec).ascii() );
     697      printf("KJS Array::Sort: %d: %s\n", i, thisObj->get(exec, i)->toString(exec).ascii() );
    708698#endif
    709699    result = thisObj;
     
    712702  case Splice: {
    713703    // 15.4.4.12 - oh boy this is huge
    714     Object resObj = Object::dynamicCast(exec->lexicalInterpreter()->builtinArray().construct(exec,List::empty()));
     704    ObjectImp *resObj = static_cast<ObjectImp *>(exec->lexicalInterpreter()->builtinArray()->construct(exec,List::empty()));
    715705    result = resObj;
    716     int begin = args[0].toUInt32(exec);
     706    int begin = args[0]->toUInt32(exec);
    717707    if ( begin < 0 )
    718708      begin = maxInt( begin + length, 0 );
    719709    else
    720710      begin = minInt( begin, length );
    721     unsigned int deleteCount = minInt( maxInt( args[1].toUInt32(exec), 0 ), length - begin );
     711    unsigned int deleteCount = minInt( maxInt( args[1]->toUInt32(exec), 0 ), length - begin );
    722712
    723713    //printf( "Splicing from %d, deleteCount=%d \n", begin, deleteCount );
    724714    for(unsigned int k = 0; k < deleteCount; k++) {
    725       Value obj;
    726       if (thisImp->getProperty(exec, k+begin, obj))
    727         resObj.put(exec, k, obj);
    728     }
    729     resObj.put(exec, lengthPropertyName, Number(deleteCount), DontEnum | DontDelete);
     715      ValueImp *obj;
     716      if (thisObj->getProperty(exec, k+begin, obj))
     717        resObj->put(exec, k, obj);
     718    }
     719    resObj->put(exec, lengthPropertyName, Number(deleteCount), DontEnum | DontDelete);
    730720
    731721    unsigned int additionalArgs = maxInt( args.size() - 2, 0 );
     
    736726        for ( unsigned int k = begin; k < length - deleteCount; ++k )
    737727        {
    738           Value obj;
    739           if (thisImp->getProperty(exec, k+deleteCount, obj))
    740             thisObj.put(exec, k+additionalArgs, obj);
     728          ValueImp *obj;
     729          if (thisObj->getProperty(exec, k+deleteCount, obj))
     730            thisObj->put(exec, k+additionalArgs, obj);
    741731          else
    742             thisObj.deleteProperty(exec, k+additionalArgs);
     732            thisObj->deleteProperty(exec, k+additionalArgs);
    743733        }
    744734        for ( unsigned int k = length ; k > length - deleteCount + additionalArgs; --k )
    745           thisObj.deleteProperty(exec, k-1);
     735          thisObj->deleteProperty(exec, k-1);
    746736      }
    747737      else
     
    749739        for ( unsigned int k = length - deleteCount; (int)k > begin; --k )
    750740        {
    751           Value obj;
    752           if (thisImp->getProperty(exec, k + deleteCount - 1, obj))
    753             thisObj.put(exec, k + additionalArgs - 1, obj);
     741          ValueImp *obj;
     742          if (thisObj->getProperty(exec, k + deleteCount - 1, obj))
     743            thisObj->put(exec, k + additionalArgs - 1, obj);
    754744          else
    755             thisObj.deleteProperty(exec, k+additionalArgs-1);
     745            thisObj->deleteProperty(exec, k+additionalArgs-1);
    756746        }
    757747      }
     
    759749    for ( unsigned int k = 0; k < additionalArgs; ++k )
    760750    {
    761       thisObj.put(exec, k+begin, args[k+2]);
    762     }
    763     thisObj.put(exec, lengthPropertyName, Number(length - deleteCount + additionalArgs), DontEnum | DontDelete);
     751      thisObj->put(exec, k+begin, args[k+2]);
     752    }
     753    thisObj->put(exec, lengthPropertyName, Number(length - deleteCount + additionalArgs), DontEnum | DontDelete);
    764754    break;
    765755  }
     
    768758    for ( unsigned int k = length; k > 0; --k )
    769759    {
    770       Value obj;
    771       if (thisImp->getProperty(exec, k - 1, obj))
    772         thisObj.put(exec, k+nrArgs-1, obj);
     760      ValueImp *obj;
     761      if (thisObj->getProperty(exec, k - 1, obj))
     762        thisObj->put(exec, k+nrArgs-1, obj);
    773763      else
    774         thisObj.deleteProperty(exec, k+nrArgs-1);
     764        thisObj->deleteProperty(exec, k+nrArgs-1);
    775765    }
    776766    for ( unsigned int k = 0; k < nrArgs; ++k )
    777       thisObj.put(exec, k, args[k]);
     767      thisObj->put(exec, k, args[k]);
    778768    result = Number(length + nrArgs);
    779     thisObj.put(exec, lengthPropertyName, result, DontEnum | DontDelete);
     769    thisObj->put(exec, lengthPropertyName, result, DontEnum | DontDelete);
    780770    break;
    781771  }
     
    788778    //http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:some
    789779   
    790     Object eachFunction = args[0].toObject(exec);
    791    
    792     if (!eachFunction.implementsCall()) {
    793       Object err = Error::create(exec,TypeError);
     780    ObjectImp *eachFunction = args[0]->toObject(exec);
     781   
     782    if (!eachFunction->implementsCall()) {
     783      ObjectImp *err = Error::create(exec,TypeError);
    794784      exec->setException(err);
    795785      return err;
    796786    }
    797787   
    798     Object applyThis = args[1].imp()->isUndefinedOrNull() ? exec->dynamicInterpreter()->globalObject() :  args[1].toObject(exec);
     788    ObjectImp *applyThis = args[1]->isUndefinedOrNull() ? exec->dynamicInterpreter()->globalObject() :  args[1]->toObject(exec);
    799789   
    800790    if (id == Some || id == Every)
     
    807797      List eachArguments;
    808798     
    809       eachArguments.append(thisObj.get(exec, k));
     799      eachArguments.append(thisObj->get(exec, k));
    810800      eachArguments.append(Number(k));
    811801      eachArguments.append(thisObj);
    812802     
    813       bool predicateResult = eachFunction.call(exec, applyThis, eachArguments).toBoolean(exec);
     803      bool predicateResult = eachFunction->call(exec, applyThis, eachArguments)->toBoolean(exec);
    814804     
    815805      if (id == Every && !predicateResult) {
     
    827817  default:
    828818    assert(0);
     819    result = 0;
    829820    break;
    830821  }
     
    839830  : InternalFunctionImp(funcProto)
    840831{
    841   Value protect(this);
    842832  // ECMA 15.4.3.1 Array.prototype
    843   put(exec,prototypePropertyName, Object(arrayProto), DontEnum|DontDelete|ReadOnly);
     833  put(exec,prototypePropertyName, arrayProto, DontEnum|DontDelete|ReadOnly);
    844834
    845835  // no. of arguments for constructor
     
    853843
    854844// ECMA 15.4.2
    855 Object ArrayObjectImp::construct(ExecState *exec, const List &args)
     845ObjectImp *ArrayObjectImp::construct(ExecState *exec, const List &args)
    856846{
    857847  // a single numeric argument denotes the array size (!)
    858   if (args.size() == 1 && args[0].type() == NumberType) {
    859     uint32_t n = args[0].toUInt32(exec);
    860     if (n != args[0].toNumber(exec)) {
    861       Object error = Error::create(exec, RangeError, "Array size is not a small enough positive integer.");
     848  if (args.size() == 1 && args[0]->isNumber()) {
     849    uint32_t n = args[0]->toUInt32(exec);
     850    if (n != args[0]->toNumber(exec)) {
     851      ObjectImp *error = Error::create(exec, RangeError, "Array size is not a small enough positive integer.");
    862852      exec->setException(error);
    863853      return error;
    864854    }
    865     return Object(new ArrayInstanceImp(exec->lexicalInterpreter()->builtinArrayPrototype().imp(), n));
     855    return new ArrayInstanceImp(exec->lexicalInterpreter()->builtinArrayPrototype(), n);
    866856  }
    867857
    868858  // otherwise the array is constructed with the arguments in it
    869   return Object(new ArrayInstanceImp(exec->lexicalInterpreter()->builtinArrayPrototype().imp(), args));
     859  return new ArrayInstanceImp(exec->lexicalInterpreter()->builtinArrayPrototype(), args);
    870860}
    871861
     
    876866
    877867// ECMA 15.6.1
    878 Value ArrayObjectImp::call(ExecState *exec, Object &/*thisObj*/, const List &args)
     868ValueImp *ArrayObjectImp::callAsFunction(ExecState *exec, ObjectImp */*thisObj*/, const List &args)
    879869{
    880870  // equivalent to 'new Array(....)'
Note: See TracChangeset for help on using the changeset viewer.