| Index: src/objects.h
|
| ===================================================================
|
| --- src/objects.h (revision 11348)
|
| +++ src/objects.h (working copy)
|
| @@ -59,6 +59,7 @@
|
| // - JSWeakMap
|
| // - JSRegExp
|
| // - JSFunction
|
| +// - JSModule
|
| // - GlobalObject
|
| // - JSGlobalObject
|
| // - JSBuiltinsObject
|
| @@ -306,6 +307,7 @@
|
| V(JS_DATE_TYPE) \
|
| V(JS_OBJECT_TYPE) \
|
| V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
|
| + V(JS_MODULE_TYPE) \
|
| V(JS_GLOBAL_OBJECT_TYPE) \
|
| V(JS_BUILTINS_OBJECT_TYPE) \
|
| V(JS_GLOBAL_PROXY_TYPE) \
|
| @@ -626,6 +628,7 @@
|
| JS_DATE_TYPE,
|
| JS_OBJECT_TYPE,
|
| JS_CONTEXT_EXTENSION_OBJECT_TYPE,
|
| + JS_MODULE_TYPE,
|
| JS_GLOBAL_OBJECT_TYPE,
|
| JS_BUILTINS_OBJECT_TYPE,
|
| JS_GLOBAL_PROXY_TYPE,
|
| @@ -803,6 +806,7 @@
|
| V(JSReceiver) \
|
| V(JSObject) \
|
| V(JSContextExtensionObject) \
|
| + V(JSModule) \
|
| V(Map) \
|
| V(DescriptorArray) \
|
| V(DeoptimizationInputData) \
|
| @@ -812,6 +816,7 @@
|
| V(FixedDoubleArray) \
|
| V(Context) \
|
| V(GlobalContext) \
|
| + V(ModuleContext) \
|
| V(ScopeInfo) \
|
| V(JSFunction) \
|
| V(Code) \
|
| @@ -2468,7 +2473,7 @@
|
| // Accessors for fetching instance descriptor at descriptor number.
|
| inline String* GetKey(int descriptor_number);
|
| inline Object* GetValue(int descriptor_number);
|
| - inline Smi* GetDetails(int descriptor_number);
|
| + inline PropertyDetails GetDetails(int descriptor_number);
|
| inline PropertyType GetType(int descriptor_number);
|
| inline int GetFieldIndex(int descriptor_number);
|
| inline JSFunction* GetConstantFunction(int descriptor_number);
|
| @@ -2477,7 +2482,6 @@
|
| inline bool IsProperty(int descriptor_number);
|
| inline bool IsTransitionOnly(int descriptor_number);
|
| inline bool IsNullDescriptor(int descriptor_number);
|
| - inline bool IsDontEnum(int descriptor_number);
|
|
|
| class WhitenessWitness {
|
| public:
|
| @@ -2631,10 +2635,6 @@
|
| return descriptor_number << 1;
|
| }
|
|
|
| - bool is_null_descriptor(int descriptor_number) {
|
| - return PropertyDetails(GetDetails(descriptor_number)).type() ==
|
| - NULL_DESCRIPTOR;
|
| - }
|
| // Swap operation on FixedArray without using write barriers.
|
| static inline void NoIncrementalWriteBarrierSwap(
|
| FixedArray* array, int first, int second);
|
| @@ -5691,6 +5691,35 @@
|
| };
|
|
|
|
|
| +// Representation for module instance objects.
|
| +class JSModule: public JSObject {
|
| + public:
|
| + // [context]: the context holding the module's locals, or undefined if none.
|
| + DECL_ACCESSORS(context, Object)
|
| +
|
| + // Casting.
|
| + static inline JSModule* cast(Object* obj);
|
| +
|
| + // Dispatched behavior.
|
| +#ifdef OBJECT_PRINT
|
| + inline void JSModulePrint() {
|
| + JSModulePrint(stdout);
|
| + }
|
| + void JSModulePrint(FILE* out);
|
| +#endif
|
| +#ifdef DEBUG
|
| + void JSModuleVerify();
|
| +#endif
|
| +
|
| + // Layout description.
|
| + static const int kContextOffset = JSObject::kHeaderSize;
|
| + static const int kSize = kContextOffset + kPointerSize;
|
| +
|
| + private:
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(JSModule);
|
| +};
|
| +
|
| +
|
| // JSFunction describes JavaScript functions.
|
| class JSFunction: public JSObject {
|
| public:
|
|
|