Changeset 13833 in webkit for trunk/JavaScriptCore/kjs


Ignore:
Timestamp:
Apr 11, 2006, 10:31:37 PM (19 years ago)
Author:
ggaren
Message:

Reviewed by Maciej.

Minor code cleanup -- passes all the JS tests.

  • kjs/object_object.cpp: (ObjectObjectImp::construct): (ObjectObjectImp::callAsFunction):
File:
1 edited

Legend:

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

    r13821 r13833  
    170170
    171171// ECMA 15.2.2
    172 JSObject *ObjectObjectImp::construct(ExecState *exec, const List &args)
     172JSObject* ObjectObjectImp::construct(ExecState* exec, const List& args)
    173173{
    174   // if no arguments have been passed ...
    175   if (args.isEmpty()) {
    176     JSObject *proto = exec->lexicalInterpreter()->builtinObjectPrototype();
    177     JSObject *result(new JSObject(proto));
    178     return result;
    179   }
    180 
    181   JSValue *arg = *(args.begin());
    182   if (JSObject *obj = arg->getObject())
    183     return obj;
    184 
     174  JSValue* arg = args[0];
    185175  switch (arg->type()) {
    186176  case StringType:
    187177  case BooleanType:
    188178  case NumberType:
    189     return arg->toObject(exec);
    190   default:
    191     assert(!"unhandled switch case in ObjectConstructor");
     179  case ObjectType:
     180      return arg->toObject(exec);
    192181  case NullType:
    193182  case UndefinedType:
    194     return new JSObject(exec->lexicalInterpreter()->builtinObjectPrototype());
     183      return new JSObject(exec->lexicalInterpreter()->builtinObjectPrototype());
     184  default:
     185      ASSERT_NOT_REACHED();
     186      return 0;
    195187  }
    196188}
    197189
    198 JSValue *ObjectObjectImp::callAsFunction(ExecState *exec, JSObject */*thisObj*/, const List &args)
     190JSValue* ObjectObjectImp::callAsFunction(ExecState* exec, JSObject* /*thisObj*/, const List &args)
    199191{
    200   JSValue *result;
    201 
    202   List argList;
    203   // Construct a new Object
    204   if (args.isEmpty()) {
    205     result = construct(exec,argList);
    206   } else {
    207     JSValue *arg = args[0];
    208     if (arg->isUndefinedOrNull()) {
    209       argList.append(arg);
    210       result = construct(exec,argList);
    211     } else
    212       result = arg->toObject(exec);
    213   }
    214   return result;
     192    return construct(exec, args);
    215193}
    216194
Note: See TracChangeset for help on using the changeset viewer.