OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 7685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7696 | 7696 |
7697 | 7697 |
7698 // Builtins global object which holds the runtime routines written in | 7698 // Builtins global object which holds the runtime routines written in |
7699 // JavaScript. | 7699 // JavaScript. |
7700 class JSBuiltinsObject: public GlobalObject { | 7700 class JSBuiltinsObject: public GlobalObject { |
7701 public: | 7701 public: |
7702 // Accessors for the runtime routines written in JavaScript. | 7702 // Accessors for the runtime routines written in JavaScript. |
7703 inline Object* javascript_builtin(Builtins::JavaScript id); | 7703 inline Object* javascript_builtin(Builtins::JavaScript id); |
7704 inline void set_javascript_builtin(Builtins::JavaScript id, Object* value); | 7704 inline void set_javascript_builtin(Builtins::JavaScript id, Object* value); |
7705 | 7705 |
7706 // Accessors for code of the runtime routines written in JavaScript. | |
7707 inline Code* javascript_builtin_code(Builtins::JavaScript id); | |
7708 inline void set_javascript_builtin_code(Builtins::JavaScript id, Code* value); | |
7709 | |
7710 DECLARE_CAST(JSBuiltinsObject) | 7706 DECLARE_CAST(JSBuiltinsObject) |
7711 | 7707 |
7712 // Dispatched behavior. | 7708 // Dispatched behavior. |
7713 DECLARE_PRINTER(JSBuiltinsObject) | 7709 DECLARE_PRINTER(JSBuiltinsObject) |
7714 DECLARE_VERIFIER(JSBuiltinsObject) | 7710 DECLARE_VERIFIER(JSBuiltinsObject) |
7715 | 7711 |
7716 // Layout description. The size of the builtins object includes | 7712 // Layout description. The size of the builtins object includes |
7717 // room for two pointers per runtime routine written in javascript | 7713 // room for two pointers per runtime routine written in javascript |
7718 // (function and code object). | 7714 // (function and code object). |
7719 static const int kJSBuiltinsCount = Builtins::id_count; | 7715 static const int kJSBuiltinsCount = Builtins::id_count; |
7720 static const int kJSBuiltinsOffset = GlobalObject::kHeaderSize; | 7716 static const int kJSBuiltinsOffset = GlobalObject::kHeaderSize; |
7721 static const int kJSBuiltinsCodeOffset = | 7717 static const int kSize = |
7722 GlobalObject::kHeaderSize + (kJSBuiltinsCount * kPointerSize); | 7718 GlobalObject::kHeaderSize + (kJSBuiltinsCount * kPointerSize); |
7723 static const int kSize = | |
7724 kJSBuiltinsCodeOffset + (kJSBuiltinsCount * kPointerSize); | |
7725 | 7719 |
7726 static int OffsetOfFunctionWithId(Builtins::JavaScript id) { | 7720 static int OffsetOfFunctionWithId(Builtins::JavaScript id) { |
7727 return kJSBuiltinsOffset + id * kPointerSize; | 7721 return kJSBuiltinsOffset + id * kPointerSize; |
7728 } | 7722 } |
7729 | 7723 |
7730 static int OffsetOfCodeWithId(Builtins::JavaScript id) { | |
7731 return kJSBuiltinsCodeOffset + id * kPointerSize; | |
7732 } | |
7733 | |
7734 private: | 7724 private: |
7735 DISALLOW_IMPLICIT_CONSTRUCTORS(JSBuiltinsObject); | 7725 DISALLOW_IMPLICIT_CONSTRUCTORS(JSBuiltinsObject); |
7736 }; | 7726 }; |
7737 | 7727 |
7738 | 7728 |
7739 // Representation for JS Wrapper objects, String, Number, Boolean, etc. | 7729 // Representation for JS Wrapper objects, String, Number, Boolean, etc. |
7740 class JSValue: public JSObject { | 7730 class JSValue: public JSObject { |
7741 public: | 7731 public: |
7742 // [value]: the object being wrapped. | 7732 // [value]: the object being wrapped. |
7743 DECL_ACCESSORS(value, Object) | 7733 DECL_ACCESSORS(value, Object) |
(...skipping 3239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10983 } else { | 10973 } else { |
10984 value &= ~(1 << bit_position); | 10974 value &= ~(1 << bit_position); |
10985 } | 10975 } |
10986 return value; | 10976 return value; |
10987 } | 10977 } |
10988 }; | 10978 }; |
10989 | 10979 |
10990 } } // namespace v8::internal | 10980 } } // namespace v8::internal |
10991 | 10981 |
10992 #endif // V8_OBJECTS_H_ | 10982 #endif // V8_OBJECTS_H_ |
OLD | NEW |