Changeset 2760 in webkit for trunk/JavaScriptCore/kjs/object.cpp


Ignore:
Timestamp:
Nov 19, 2002, 2:02:26 PM (23 years ago)
Author:
darin
Message:

JavaScriptCore:

  • a first step towards atomic identifiers in JavaScript

Most places that work with identifiers now use Identifier
instead of UString.

  • kjs/identifier.cpp: Added.
  • kjs/identifier.h: Added.
  • JavaScriptCore.pbproj/project.pbxproj: Added files.
  • kjs/array_object.cpp:
  • kjs/array_object.h:
  • kjs/completion.cpp:
  • kjs/completion.h:
  • kjs/date_object.cpp:
  • kjs/date_object.h:
  • kjs/function.cpp:
  • kjs/function.h:
  • kjs/function_object.cpp:
  • kjs/grammar.cpp:
  • kjs/grammar.cpp.h:
  • kjs/grammar.h:
  • kjs/grammar.y:
  • kjs/internal.cpp:
  • kjs/internal.h:
  • kjs/lexer.cpp:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/math_object.cpp:
  • kjs/math_object.h:
  • kjs/nodes.cpp:
  • kjs/nodes.h:
  • kjs/number_object.cpp:
  • kjs/number_object.h:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/property_map.cpp:
  • kjs/property_map.h:
  • kjs/reference.cpp:
  • kjs/reference.h:
  • kjs/regexp_object.cpp:
  • kjs/regexp_object.h:
  • kjs/string_object.cpp:
  • kjs/string_object.h:

WebCore:

  • a first step towards atomic identifiers in JavaScript

Most places that work with identifiers now use Identifier
instead of UString.

  • khtml/ecma/kjs_binding.cpp:
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_css.cpp:
  • khtml/ecma/kjs_css.h:
  • khtml/ecma/kjs_dom.cpp:
  • khtml/ecma/kjs_dom.h:
  • khtml/ecma/kjs_events.cpp:
  • khtml/ecma/kjs_events.h:
  • khtml/ecma/kjs_html.cpp:
  • khtml/ecma/kjs_html.h:
  • khtml/ecma/kjs_navigator.cpp:
  • khtml/ecma/kjs_navigator.h:
  • khtml/ecma/kjs_range.cpp:
  • khtml/ecma/kjs_range.h:
  • khtml/ecma/kjs_traversal.cpp:
  • khtml/ecma/kjs_traversal.h:
  • khtml/ecma/kjs_views.cpp:
  • khtml/ecma/kjs_views.h:
  • khtml/ecma/kjs_window.cpp:
  • khtml/ecma/kjs_window.h:
File:
1 edited

Legend:

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

    r2753 r2760  
    4141namespace KJS {
    4242
    43 extern const UString argumentsPropertyName("arguments");
    44 extern const UString lengthPropertyName("length");
    45 extern const UString prototypePropertyName("prototype");
    46 extern const UString specialPrototypePropertyName("__proto__");
    47 extern const UString toStringPropertyName("toString");
    48 extern const UString valueOfPropertyName("valueOf");
     43extern const Identifier argumentsPropertyName("arguments");
     44extern const Identifier lengthPropertyName("length");
     45extern const Identifier prototypePropertyName("prototype");
     46extern const Identifier specialPrototypePropertyName("__proto__");
     47extern const Identifier toStringPropertyName("toString");
     48extern const Identifier valueOfPropertyName("valueOf");
    4949
    5050// ------------------------------ Object ---------------------------------------
     
    138138}
    139139
    140 Value ObjectImp::get(ExecState *exec, const UString &propertyName) const
     140Value ObjectImp::get(ExecState *exec, const Identifier &propertyName) const
    141141{
    142142  ValueImp *imp = getDirect(propertyName);
     
    157157Value ObjectImp::get(ExecState *exec, unsigned propertyName) const
    158158{
    159   return get(exec, UString::from(propertyName));
     159  return get(exec, Identifier::from(propertyName));
    160160}
    161161
     
    164164// This is used e.g. by lookupOrCreateFunction (to cache a function, we don't want
    165165// to look up in the prototype, it might already exist there)
    166 ValueImp* ObjectImp::getDirect(const UString& propertyName) const
     166ValueImp* ObjectImp::getDirect(const Identifier& propertyName) const
    167167{
    168168  return _prop.get(propertyName);
     
    170170
    171171// ECMA 8.6.2.2
    172 void ObjectImp::put(ExecState *exec, const UString &propertyName,
     172void ObjectImp::put(ExecState *exec, const Identifier &propertyName,
    173173                     const Value &value, int attr)
    174174{
     
    200200                     const Value &value, int attr)
    201201{
    202   put(exec, UString::from(propertyName), value, attr);
     202  put(exec, Identifier::from(propertyName), value, attr);
    203203}
    204204
    205205// ECMA 8.6.2.3
    206 bool ObjectImp::canPut(ExecState *, const UString &propertyName) const
     206bool ObjectImp::canPut(ExecState *, const Identifier &propertyName) const
    207207{
    208208  int attributes;
     
    222222
    223223// ECMA 8.6.2.4
    224 bool ObjectImp::hasProperty(ExecState *exec, const UString &propertyName) const
     224bool ObjectImp::hasProperty(ExecState *exec, const Identifier &propertyName) const
    225225{
    226226  if (_prop.get(propertyName))
     
    242242bool ObjectImp::hasProperty(ExecState *exec, unsigned propertyName) const
    243243{
    244   return hasProperty(exec, UString::from(propertyName));
     244  return hasProperty(exec, Identifier::from(propertyName));
    245245}
    246246
    247247// ECMA 8.6.2.5
    248 bool ObjectImp::deleteProperty(ExecState */*exec*/, const UString &propertyName)
     248bool ObjectImp::deleteProperty(ExecState */*exec*/, const Identifier &propertyName)
    249249{
    250250  int attributes;
     
    266266bool ObjectImp::deleteProperty(ExecState *exec, unsigned propertyName)
    267267{
    268   return deleteProperty(exec, UString::from(propertyName));
     268  return deleteProperty(exec, Identifier::from(propertyName));
    269269}
    270270
     
    329329}
    330330
    331 const HashEntry* ObjectImp::findPropertyHashEntry( const UString& propertyName ) const
     331const HashEntry* ObjectImp::findPropertyHashEntry( const Identifier& propertyName ) const
    332332{
    333333  const ClassInfo *info = classInfo();
Note: See TracChangeset for help on using the changeset viewer.