Ignore:
Timestamp:
May 3, 2009, 12:27:42 PM (16 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2009-05-02 Sam Weinig <[email protected]>

Roll JSC API number marshaling back in.

WebCore:

2009-05-02 Sam Weinig <[email protected]>

Roll JSC API number marshaling back in.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/JSNumberCell.h

    r43139 r43157  
    5353        friend JSValue jsNumberCell(JSGlobalData*, double);
    5454        friend JSValue jsNumberCell(ExecState*, double);
     55        friend JSValue jsAPIMangledNumber(ExecState*, double);
    5556    public:
    5657        double value() const { return m_value; }
     
    6667        virtual JSObject* toThisObject(ExecState*) const;
    6768        virtual JSValue getJSNumber();
     69
     70        static const uintptr_t JSAPIMangledMagicNumber = 0xbbadbeef;
     71        bool isAPIMangledNumber() const { return m_structure == reinterpret_cast<Structure*>(JSAPIMangledMagicNumber); }
    6872
    6973        void* operator new(size_t size, ExecState* exec)
     
    100104        }
    101105
     106        enum APIMangledTag { APIMangled };
     107        JSNumberCell(APIMangledTag, double value)
     108            : JSCell(reinterpret_cast<Structure*>(JSAPIMangledMagicNumber))
     109            , m_value(value)
     110        {
     111        }
     112
    102113        virtual bool getUInt32(uint32_t&) const;
    103114        virtual bool getTruncatedInt32(int32_t&) const;
     
    224235        ASSERT(isNumber());
    225236        return JSImmediate::isImmediate(asValue()) ? JSImmediate::toDouble(asValue()) : getDoubleNumber();
     237    }
     238
     239    JSValue jsAPIMangledNumber(ExecState* exec, double);
     240
     241    inline bool JSValue::isAPIMangledNumber()
     242    {
     243        ASSERT(isNumber());
     244        return JSImmediate::isImmediate(asValue()) ? false : asNumberCell(asValue())->isAPIMangledNumber();
    226245    }
    227246
Note: See TracChangeset for help on using the changeset viewer.