| 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 |