Public Types |
| enum | {
DELEGATE = 0x01,
SYSTEM = 0x02,
NOT_EXTENSIBLE = 0x04,
BRANDED = 0x08,
GENERIC = 0x10,
METHOD_BARRIER = 0x20,
INDEXED = 0x40,
OWN_SHAPE = 0x80,
BOUND_FUNCTION = 0x100,
HAS_EQUALITY = 0x200,
METHOD_THRASH_COUNT_MASK = 0xc00,
METHOD_THRASH_COUNT_SHIFT = 10,
METHOD_THRASH_COUNT_MAX = METHOD_THRASH_COUNT_MASK >> METHOD_THRASH_COUNT_SHIFT
} |
| enum | { NSLOTS_BITS = 29,
NSLOTS_LIMIT = ((JSUint32)1 << ( NSLOTS_BITS ))
} |
| enum | EnsureDenseResult { ED_OK,
ED_FAILED,
ED_SPARSE
} |
Public Member Functions |
| const js::Shape * | lastProperty () const |
| js::Shape ** | nativeSearch (jsid id, bool adding=false) |
| const js::Shape * | nativeLookup (jsid id) |
| bool | nativeContains (jsid id) |
| bool | nativeContains (const js::Shape &shape) |
| bool | canProvideEmptyShape (js::Class *clasp) |
| js::EmptyShape * | getEmptyShape (JSContext *cx, js::Class *aclasp, unsigned kind) |
| bool | isNative () const |
| js::Class * | getClass () const |
| JSClass * | getJSClass () const |
| bool | hasClass (const js::Class *c) const |
| const js::ObjectOps * | getOps () const |
| void | trace (JSTracer *trc) |
| uint32 | shape () const |
| bool | isDelegate () const |
| void | setDelegate () |
| void | clearDelegate () |
| bool | isBoundFunction () const |
| bool | isSystem () const |
| void | setSystem () |
| bool | branded () |
| bool | brand (JSContext *cx) |
| bool | unbrand (JSContext *cx) |
| bool | generic () |
| void | setGeneric () |
| uintN | getMethodThrashCount () const |
| void | setMethodThrashCount (uintN count) |
| bool | hasSpecialEquality () const |
| void | assertSpecialEqualitySynced () const |
| void | syncSpecialEquality () |
| bool | nativeEmpty () const |
| bool | hasOwnShape () const |
| void | setMap (const JSObjectMap *amap) |
| void | setSharedNonNativeMap () |
| void | deletingShapeChange (JSContext *cx, const js::Shape &shape) |
| const js::Shape * | methodShapeChange (JSContext *cx, const js::Shape &shape) |
| bool | methodShapeChange (JSContext *cx, uint32 slot) |
| void | protoShapeChange (JSContext *cx) |
| void | shadowingShapeChange (JSContext *cx, const js::Shape &shape) |
| bool | globalObjectOwnShapeChange (JSContext *cx) |
| void | extensibleShapeChange (JSContext *cx) |
| bool | hasMethodBarrier () |
| void | setMethodBarrier () |
| bool | brandedOrHasMethodBarrier () |
| bool | methodReadBarrier (JSContext *cx, const js::Shape &shape, js::Value *vp) |
| const js::Shape * | methodWriteBarrier (JSContext *cx, const js::Shape &shape, const js::Value &v) |
| bool | methodWriteBarrier (JSContext *cx, uint32 slot, const js::Value &v) |
| bool | isIndexed () const |
| void | setIndexed () |
| bool | inDictionaryMode () const |
| uint32 | propertyCount () const |
| bool | hasPropertyTable () const |
| unsigned | finalizeKind () const |
| uint32 | numSlots () const |
| size_t | slotsAndStructSize (uint32 nslots) const |
| size_t | slotsAndStructSize () const |
| js::Value * | fixedSlots () const |
| size_t | numFixedSlots () const |
| bool | allocSlots (JSContext *cx, size_t nslots) |
| bool | growSlots (JSContext *cx, size_t nslots) |
| void | shrinkSlots (JSContext *cx, size_t nslots) |
| bool | ensureSlots (JSContext *cx, size_t nslots) |
| bool | ensureInstanceReservedSlots (JSContext *cx, size_t nreserved) |
| js::Value * | getSlots () const |
| bool | ensureClassReservedSlotsForEmptyObject (JSContext *cx) |
| bool | ensureClassReservedSlots (JSContext *cx) |
| uint32 | slotSpan () const |
| bool | containsSlot (uint32 slot) const |
| js::Value & | getSlotRef (uintN slot) |
| js::Value & | nativeGetSlotRef (uintN slot) |
| const js::Value & | getSlot (uintN slot) const |
| const js::Value & | nativeGetSlot (uintN slot) const |
| void | setSlot (uintN slot, const js::Value &value) |
| void | nativeSetSlot (uintN slot, const js::Value &value) |
| js::Value | getReservedSlot (uintN index) const |
| void | updateShape (JSContext *cx) |
| void | updateFlags (const js::Shape *shape, bool isDefinitelyAtom=false) |
| void | extend (JSContext *cx, const js::Shape *shape, bool isDefinitelyAtom=false) |
| JSObject * | getProto () const |
| void | clearProto () |
| void | setProto (JSObject *newProto) |
| JSObject * | getParent () const |
| void | clearParent () |
| void | setParent (JSObject *newParent) |
| JSObject * | getGlobal () const |
| bool | isGlobal () const |
| void * | getPrivate () const |
| void | setPrivate (void *data) |
| bool | isExtensible () const |
| bool | preventExtensions (JSContext *cx, js::AutoIdVector *props) |
| bool | seal (JSContext *cx) |
| bool | freeze (JSContext *cx) |
| const js::Value & | getPrimitiveThis () const |
| void | setPrimitiveThis (const js::Value &pthis) |
| uint32 | getArrayLength () const |
| void | setArrayLength (uint32 length) |
| uint32 | getDenseArrayCapacity () |
| js::Value * | getDenseArrayElements () |
| const js::Value & | getDenseArrayElement (uintN idx) |
| js::Value * | addressOfDenseArrayElement (uintN idx) |
| void | setDenseArrayElement (uintN idx, const js::Value &val) |
| void | shrinkDenseArrayElements (JSContext *cx, uintN cap) |
| EnsureDenseResult | ensureDenseArrayElements (JSContext *cx, uintN index, uintN extra) |
| bool | willBeSparseDenseArray (uintN requiredCapacity, uintN newElementsHint) |
| JSBool | makeDenseArraySlow (JSContext *cx) |
| void | setArgsLength (uint32 argc) |
| uint32 | getArgsInitialLength () const |
| void | setArgsLengthOverridden () |
| bool | isArgsLengthOverridden () const |
| js::ArgumentsData * | getArgsData () const |
| void | setArgsData (js::ArgumentsData *data) |
| const js::Value & | getArgsCallee () const |
| void | setArgsCallee (const js::Value &callee) |
| const js::Value & | getArgsElement (uint32 i) const |
| js::Value * | getArgsElements () const |
| js::Value * | addressOfArgsElement (uint32 i) |
| void | setArgsElement (uint32 i, const js::Value &v) |
| bool | callIsForEval () const |
| JSStackFrame * | maybeCallObjStackFrame () const |
| JSObject * | getCallObjCallee () const |
| JSFunction * | getCallObjCalleeFunction () const |
| void | setCallObjCallee (JSObject *callee) |
| const js::Value & | getCallObjArguments () const |
| void | setCallObjArguments (const js::Value &v) |
| const js::Value & | callObjArg (uintN i) const |
| js::Value & | callObjArg (uintN i) |
| const js::Value & | callObjVar (uintN i) const |
| js::Value & | callObjVar (uintN i) |
| const js::Value & | getDateUTCTime () const |
| void | setDateUTCTime (const js::Value &pthis) |
| JSFunction * | getFunctionPrivate () const |
| js::Value * | getFlatClosureUpvars () const |
| js::Value | getFlatClosureUpvar (uint32 i) const |
| js::Value & | getFlatClosureUpvar (uint32 i) |
| void | setFlatClosureUpvars (js::Value *upvars) |
| bool | hasMethodObj (const JSObject &obj) const |
| void | setMethodObj (JSObject &obj) |
| bool | initBoundFunction (JSContext *cx, const js::Value &thisArg, const js::Value *args, uintN argslen) |
| JSObject * | getBoundFunctionTarget () const |
| const js::Value & | getBoundFunctionThis () const |
| const js::Value * | getBoundFunctionArguments (uintN &argslen) const |
| const js::Value & | getRegExpLastIndex () const |
| void | setRegExpLastIndex (const js::Value &v) |
| void | setRegExpLastIndex (jsdouble d) |
| void | zeroRegExpLastIndex () |
| js::NativeIterator * | getNativeIterator () const |
| void | setNativeIterator (js::NativeIterator *) |
| JSLinearString * | getNamePrefix () const |
| jsval | getNamePrefixVal () const |
| void | setNamePrefix (JSLinearString *prefix) |
| void | clearNamePrefix () |
| JSLinearString * | getNameURI () const |
| jsval | getNameURIVal () const |
| void | setNameURI (JSLinearString *uri) |
| jsval | getNamespaceDeclared () const |
| void | setNamespaceDeclared (jsval decl) |
| JSLinearString * | getQNameLocalName () const |
| jsval | getQNameLocalNameVal () const |
| void | setQNameLocalName (JSLinearString *name) |
| js::JSProxyHandler * | getProxyHandler () const |
| const js::Value & | getProxyPrivate () const |
| void | setProxyPrivate (const js::Value &priv) |
| const js::Value & | getProxyExtra () const |
| void | setProxyExtra (const js::Value &extra) |
| JSObject * | getWithThis () const |
| void | setWithThis (JSObject *thisp) |
| bool | isCallable () |
| void | init (JSContext *cx, js::Class *aclasp, JSObject *proto, JSObject *parent, void *priv, bool useHoles) |
| void | finish (JSContext *cx) |
| void | finalize (JSContext *cx) |
| bool | initSharingEmptyShape (JSContext *cx, js::Class *clasp, JSObject *proto, JSObject *parent, void *priv, unsigned kind) |
| bool | hasSlotsArray () const |
| void | freeSlotsArray (JSContext *cx) |
| void | revertToFixedSlots (JSContext *cx) |
| bool | hasProperty (JSContext *cx, jsid id, bool *foundp, uintN flags=0) |
| bool | allocSlot (JSContext *cx, uint32 *slotp) |
| bool | freeSlot (JSContext *cx, uint32 slot) |
| bool | reportReadOnly (JSContext *cx, jsid id, uintN report=0x0) |
| bool | reportNotConfigurable (JSContext *cx, jsid id, uintN report=0x0) |
| bool | reportNotExtensible (JSContext *cx, uintN report=0x0) |
| const js::Shape * | addProperty (JSContext *cx, jsid id, js::PropertyOp getter, js::PropertyOp setter, uint32 slot, uintN attrs, uintN flags, intN shortid) |
| const js::Shape * | addDataProperty (JSContext *cx, jsid id, uint32 slot, uintN attrs) |
| const js::Shape * | putProperty (JSContext *cx, jsid id, js::PropertyOp getter, js::PropertyOp setter, uint32 slot, uintN attrs, uintN flags, intN shortid) |
| const js::Shape * | changeProperty (JSContext *cx, const js::Shape *shape, uintN attrs, uintN mask, js::PropertyOp getter, js::PropertyOp setter) |
| bool | removeProperty (JSContext *cx, jsid id) |
| void | clear (JSContext *cx) |
| JSBool | lookupProperty (JSContext *cx, jsid id, JSObject **objp, JSProperty **propp) |
| JSBool | defineProperty (JSContext *cx, jsid id, const js::Value &value, js::PropertyOp getter=js::PropertyStub, js::PropertyOp setter=js::PropertyStub, uintN attrs=0x01) |
| JSBool | getProperty (JSContext *cx, JSObject *receiver, jsid id, js::Value *vp) |
| JSBool | getProperty (JSContext *cx, jsid id, js::Value *vp) |
| JSBool | setProperty (JSContext *cx, jsid id, js::Value *vp, JSBool strict) |
| JSBool | getAttributes (JSContext *cx, jsid id, uintN *attrsp) |
| JSBool | setAttributes (JSContext *cx, jsid id, uintN *attrsp) |
| JSBool | deleteProperty (JSContext *cx, jsid id, js::Value *rval, JSBool strict) |
| JSBool | enumerate (JSContext *cx, JSIterateOp iterop, js::Value *statep, jsid *idp) |
| JSType | typeOf (JSContext *cx) |
| JSObject * | thisObject (JSContext *cx) |
| JSCompartment * | getCompartment () const |
| JSObject * | getThrowTypeError () const |
| JSObject * | clone (JSContext *cx, JSObject *proto, JSObject *parent) |
| bool | copyPropertiesFrom (JSContext *cx, JSObject *obj) |
| bool | swap (JSContext *cx, JSObject *other) |
| const js::Shape * | defineBlockVariable (JSContext *cx, jsid id, intN index) |
| bool | canHaveMethodBarrier () const |
| bool | isArguments () const |
| bool | isNormalArguments () const |
| bool | isStrictArguments () const |
| bool | isArray () const |
| bool | isDenseArray () const |
| bool | isSlowArray () const |
| bool | isNumber () const |
| bool | isBoolean () const |
| bool | isString () const |
| bool | isPrimitive () const |
| bool | isDate () const |
| bool | isFunction () const |
| bool | isObject () const |
| bool | isWith () const |
| bool | isBlock () const |
| bool | isStaticBlock () const |
| bool | isClonedBlock () const |
| bool | isCall () const |
| bool | isRegExp () const |
| bool | isXML () const |
| bool | isXMLId () const |
| bool | isNamespace () const |
| bool | isQName () const |
| bool | isProxy () const |
| bool | isObjectProxy () const |
| bool | isFunctionProxy () const |
| bool | isWrapper () const |
| JSObject * | unwrap (uintN *flagsp=NULL) |
| void | initArrayClass () |
Static Public Member Functions |
| static void | setDelegateNullSafe (JSObject *obj) |
| static size_t | getFixedSlotOffset (size_t slot) |
| static bool | thisObject (JSContext *cx, const js::Value &v, js::Value *vp) |
Public Attributes |
| union { |
| js::Shape * lastProp |
| JSObjectMap * map |
| }; | |
| js::Class * | clasp |
| uint32 | flags |
| uint32 | objShape |
| js::EmptyShape ** | emptyShapes |
| JSObject * | proto |
| JSObject * | parent |
| void * | privateData |
| jsuword | capacity |
| js::Value * | slots |
Static Public Attributes |
| static const uint32 | SLOT_CAPACITY_MIN = 8 |
| static const uint32 | JSSLOT_ARGS_LENGTH = 0 |
| static const uint32 | ARGS_CLASS_RESERVED_SLOTS = 2 |
| static const uint32 | ARGS_FIRST_FREE_SLOT = ARGS_CLASS_RESERVED_SLOTS + 1 |
| static const uint32 | ARGS_LENGTH_OVERRIDDEN_BIT = 0x1 |
| static const uint32 | ARGS_PACKED_BITS_COUNT = 1 |
| static const uint32 | CALL_RESERVED_SLOTS = 2 |
| static const uint32 | JSSLOT_DATE_UTC_TIME = 0 |
| static const uint32 | JSSLOT_DATE_COMPONENTS_START = 1 |
| static const uint32 | JSSLOT_DATE_LOCAL_TIME = 1 |
| static const uint32 | JSSLOT_DATE_LOCAL_YEAR = 2 |
| static const uint32 | JSSLOT_DATE_LOCAL_MONTH = 3 |
| static const uint32 | JSSLOT_DATE_LOCAL_DATE = 4 |
| static const uint32 | JSSLOT_DATE_LOCAL_DAY = 5 |
| static const uint32 | JSSLOT_DATE_LOCAL_HOURS = 6 |
| static const uint32 | JSSLOT_DATE_LOCAL_MINUTES = 7 |
| static const uint32 | JSSLOT_DATE_LOCAL_SECONDS = 8 |
| static const uint32 | DATE_CLASS_RESERVED_SLOTS = 9 |
| static const uint32 | FUN_CLASS_RESERVED_SLOTS = 2 |
| static const uint32 | REGEXP_CLASS_RESERVED_SLOTS = 1 |
| static const uint32 | NAMESPACE_CLASS_RESERVED_SLOTS = 3 |
| static const uint32 | QNAME_CLASS_RESERVED_SLOTS = 3 |
Friends |
| class | js::TraceRecorder |
| class | nanojit::ValidateWriter |
| class | GetPropCompiler |
| struct | JSFunction |
| class | js::mjit::Compiler |