Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Unified Diff: src/contexts.h

Issue 1322883002: Make isolate.h usable without objects-inl.h header. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_cleanup-includes-frames-2
Patch Set: Rebased. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/source-position.cc ('k') | src/contexts.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/contexts.h
diff --git a/src/contexts.h b/src/contexts.h
index 4e4dd2c8e72c2d5efb56684c87f30b3924a88c9f..8d85667311550292ff99d0fcdd89fa58782f9db6 100644
--- a/src/contexts.h
+++ b/src/contexts.h
@@ -299,10 +299,7 @@ enum BindingFlags {
class ScriptContextTable : public FixedArray {
public:
// Conversions.
- static ScriptContextTable* cast(Object* context) {
- DCHECK(context->IsScriptContextTable());
- return reinterpret_cast<ScriptContextTable*>(context);
- }
+ static inline ScriptContextTable* cast(Object* context);
struct LookupResult {
int context_index;
@@ -313,13 +310,11 @@ class ScriptContextTable : public FixedArray {
MaybeAssignedFlag maybe_assigned_flag;
};
- int used() const { return Smi::cast(get(kUsedSlot))->value(); }
- void set_used(int used) { set(kUsedSlot, Smi::FromInt(used)); }
+ inline int used() const;
+ inline void set_used(int used);
- static Handle<Context> GetContext(Handle<ScriptContextTable> table, int i) {
- DCHECK(i < table->used());
- return Handle<Context>::cast(FixedArray::get(table, i + kFirstContextSlot));
- }
+ static inline Handle<Context> GetContext(Handle<ScriptContextTable> table,
+ int i);
// Lookup a variable `name` in a ScriptContextTable.
// If it returns true, the variable is found and `result` contains
@@ -399,10 +394,7 @@ class ScriptContextTable : public FixedArray {
class Context: public FixedArray {
public:
// Conversions.
- static Context* cast(Object* context) {
- DCHECK(context->IsContext());
- return reinterpret_cast<Context*>(context);
- }
+ static inline Context* cast(Object* context);
// The default context slot layout; indices are FixedArray slot indices.
enum {
@@ -438,40 +430,30 @@ class Context: public FixedArray {
};
// Direct slot access.
- JSFunction* closure() { return JSFunction::cast(get(CLOSURE_INDEX)); }
- void set_closure(JSFunction* closure) { set(CLOSURE_INDEX, closure); }
+ inline JSFunction* closure();
+ inline void set_closure(JSFunction* closure);
- Context* previous() {
- Object* result = unchecked_previous();
- DCHECK(IsBootstrappingOrValidParentContext(result, this));
- return reinterpret_cast<Context*>(result);
- }
- void set_previous(Context* context) { set(PREVIOUS_INDEX, context); }
+ inline Context* previous();
+ inline void set_previous(Context* context);
- bool has_extension() { return extension() != nullptr; }
- Object* extension() { return get(EXTENSION_INDEX); }
- void set_extension(Object* object) { set(EXTENSION_INDEX, object); }
+ inline bool has_extension();
+ inline Object* extension();
+ inline void set_extension(Object* object);
JSObject* extension_object();
JSReceiver* extension_receiver();
ScopeInfo* scope_info();
String* catch_name();
- JSModule* module() { return JSModule::cast(get(EXTENSION_INDEX)); }
- void set_module(JSModule* module) { set(EXTENSION_INDEX, module); }
+ inline JSModule* module();
+ inline void set_module(JSModule* module);
// Get the context where var declarations will be hoisted to, which
// may be the context itself.
Context* declaration_context();
bool is_declaration_context();
- GlobalObject* global_object() {
- Object* result = get(GLOBAL_OBJECT_INDEX);
- DCHECK(IsBootstrappingOrGlobalObject(this->GetIsolate(), result));
- return reinterpret_cast<GlobalObject*>(result);
- }
- void set_global_object(GlobalObject* object) {
- set(GLOBAL_OBJECT_INDEX, object);
- }
+ inline GlobalObject* global_object();
+ inline void set_global_object(GlobalObject* object);
// Returns a JSGlobalProxy object or null.
JSObject* global_proxy();
@@ -489,39 +471,15 @@ class Context: public FixedArray {
// Predicates for context types. IsNativeContext is also defined on Object
// because we frequently have to know if arbitrary objects are natives
// contexts.
- bool IsNativeContext() {
- Map* map = this->map();
- return map == map->GetHeap()->native_context_map();
- }
- bool IsFunctionContext() {
- Map* map = this->map();
- return map == map->GetHeap()->function_context_map();
- }
- bool IsCatchContext() {
- Map* map = this->map();
- return map == map->GetHeap()->catch_context_map();
- }
- bool IsWithContext() {
- Map* map = this->map();
- return map == map->GetHeap()->with_context_map();
- }
- bool IsBlockContext() {
- Map* map = this->map();
- return map == map->GetHeap()->block_context_map();
- }
- bool IsModuleContext() {
- Map* map = this->map();
- return map == map->GetHeap()->module_context_map();
- }
- bool IsScriptContext() {
- Map* map = this->map();
- return map == map->GetHeap()->script_context_map();
- }
+ inline bool IsNativeContext();
+ inline bool IsFunctionContext();
+ inline bool IsCatchContext();
+ inline bool IsWithContext();
+ inline bool IsBlockContext();
+ inline bool IsModuleContext();
+ inline bool IsScriptContext();
- bool HasSameSecurityTokenAs(Context* that) {
- return this->global_object()->native_context()->security_token() ==
- that->global_object()->native_context()->security_token();
- }
+ inline bool HasSameSecurityTokenAs(Context* that);
// Initializes global variable bindings in given script context.
void InitializeGlobalSlots();
@@ -549,18 +507,9 @@ class Context: public FixedArray {
Handle<JSFunction> function);
#define NATIVE_CONTEXT_FIELD_ACCESSORS(index, type, name) \
- void set_##name(type* value) { \
- DCHECK(IsNativeContext()); \
- set(index, value); \
- } \
- bool is_##name(type* value) { \
- DCHECK(IsNativeContext()); \
- return type::cast(get(index)) == value; \
- } \
- type* name() { \
- DCHECK(IsNativeContext()); \
- return type::cast(get(index)); \
- }
+ inline void set_##name(type* value); \
+ inline bool is_##name(type* value); \
+ inline type* name();
NATIVE_CONTEXT_FIELDS(NATIVE_CONTEXT_FIELD_ACCESSORS)
#undef NATIVE_CONTEXT_FIELD_ACCESSORS
@@ -630,9 +579,6 @@ class Context: public FixedArray {
kSize> MarkCompactBodyDescriptor;
private:
- // Unchecked access to the slots.
- Object* unchecked_previous() { return get(PREVIOUS_INDEX); }
-
#ifdef DEBUG
// Bootstrapping-aware type checks.
static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid);
« no previous file with comments | « src/compiler/source-position.cc ('k') | src/contexts.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698