Ignore:
Timestamp:
May 21, 2008, 6:20:45 PM (17 years ago)
Author:
[email protected]
Message:

Merge squirrelfish branch into trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/JSImmediate.h

    r28916 r33979  
    123123    static JSValue* undefinedImmediate();
    124124    static JSValue* nullImmediate();
     125
     126    static JSValue* impossibleValue();
    125127   
    126128private:
     
    152154ALWAYS_INLINE JSValue* JSImmediate::undefinedImmediate() { return tag(1 << 2, UndefinedType); }
    153155ALWAYS_INLINE JSValue* JSImmediate::nullImmediate() { return tag(0, UndefinedType); }
     156
     157// This value is impossible because 0x4 is not a valid pointer but a tag of 0 would indicate non-immediate
     158ALWAYS_INLINE JSValue* JSImmediate::impossibleValue() { return tag(1 << 2, 0); }
    154159
    155160ALWAYS_INLINE bool JSImmediate::toBoolean(const JSValue* v)
     
    274279}
    275280
     281ALWAYS_INLINE JSType JSImmediate::type(const JSValue* v)
     282{
     283    ASSERT(isImmediate(v));
     284   
     285    uintptr_t tag = getTag(v);
     286    if (tag == UndefinedType)
     287        return v == undefinedImmediate() ? UndefinedType : NullType;
     288    return static_cast<JSType>(tag);
     289}
     290
    276291} // namespace KJS
    277292
Note: See TracChangeset for help on using the changeset viewer.