| 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_RUNTIME_H_ | 5 #ifndef V8_RUNTIME_H_ |
| 6 #define V8_RUNTIME_H_ | 6 #define V8_RUNTIME_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/zone.h" | 9 #include "src/zone.h" |
| 10 | 10 |
| 11 namespace v8 { | 11 namespace v8 { |
| 12 namespace internal { | 12 namespace internal { |
| 13 | 13 |
| 14 // The interface to C++ runtime functions. | 14 // The interface to C++ runtime functions. |
| 15 | 15 |
| 16 // ---------------------------------------------------------------------------- | 16 // ---------------------------------------------------------------------------- |
| 17 // RUNTIME_FUNCTION_LIST_ALWAYS defines runtime calls available in both | 17 // RUNTIME_FUNCTION_LIST_ALWAYS defines runtime calls available in both |
| 18 // release and debug mode. | 18 // release and debug mode. |
| 19 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. | 19 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. |
| 20 | 20 |
| 21 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused | 21 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused |
| 22 // MSVC Intellisense to crash. It was broken into two macros to work around | 22 // MSVC Intellisense to crash. It was broken into two macros to work around |
| 23 // this problem. Please avoid large recursive macros whenever possible. | 23 // this problem. Please avoid large recursive macros whenever possible. |
| 24 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ | 24 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ |
| 25 /* Property access */ \ | 25 /* Property access */ \ |
| 26 F(GetProperty, 2, 1) \ | 26 F(GetProperty, 2, 1) \ |
| 27 F(KeyedGetProperty, 2, 1) \ | 27 F(KeyedGetProperty, 2, 1) \ |
| 28 F(LoadOwnProperty, 2, 1) \ |
| 29 F(KeyedGetOwnProperty, 2, 1) \ |
| 28 F(DeleteProperty, 3, 1) \ | 30 F(DeleteProperty, 3, 1) \ |
| 29 F(HasOwnProperty, 2, 1) \ | 31 F(HasOwnProperty, 2, 1) \ |
| 30 F(HasProperty, 2, 1) \ | 32 F(HasProperty, 2, 1) \ |
| 31 F(HasElement, 2, 1) \ | 33 F(HasElement, 2, 1) \ |
| 32 F(IsPropertyEnumerable, 2, 1) \ | 34 F(IsPropertyEnumerable, 2, 1) \ |
| 33 F(GetPropertyNames, 1, 1) \ | 35 F(GetPropertyNames, 1, 1) \ |
| 34 F(GetPropertyNamesFast, 1, 1) \ | 36 F(GetPropertyNamesFast, 1, 1) \ |
| 35 F(GetOwnPropertyNames, 2, 1) \ | 37 F(GetOwnPropertyNames, 2, 1) \ |
| 36 F(GetOwnElementNames, 1, 1) \ | 38 F(GetOwnElementNames, 1, 1) \ |
| 37 F(GetInterceptorInfo, 1, 1) \ | 39 F(GetInterceptorInfo, 1, 1) \ |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 F(AbortJS, 1, 1) \ | 370 F(AbortJS, 1, 1) \ |
| 369 /* ES5 */ \ | 371 /* ES5 */ \ |
| 370 F(OwnKeys, 1, 1) \ | 372 F(OwnKeys, 1, 1) \ |
| 371 \ | 373 \ |
| 372 /* Message objects */ \ | 374 /* Message objects */ \ |
| 373 F(MessageGetStartPosition, 1, 1) \ | 375 F(MessageGetStartPosition, 1, 1) \ |
| 374 F(MessageGetScript, 1, 1) \ | 376 F(MessageGetScript, 1, 1) \ |
| 375 \ | 377 \ |
| 376 /* Pseudo functions - handled as macros by parser */ \ | 378 /* Pseudo functions - handled as macros by parser */ \ |
| 377 F(IS_VAR, 1, 1) \ | 379 F(IS_VAR, 1, 1) \ |
| 380 F(GET_OWN_PROPERTY, 2, 1) \ |
| 378 \ | 381 \ |
| 379 /* expose boolean functions from objects-inl.h */ \ | 382 /* expose boolean functions from objects-inl.h */ \ |
| 380 F(HasFastSmiElements, 1, 1) \ | 383 F(HasFastSmiElements, 1, 1) \ |
| 381 F(HasFastSmiOrObjectElements, 1, 1) \ | 384 F(HasFastSmiOrObjectElements, 1, 1) \ |
| 382 F(HasFastObjectElements, 1, 1) \ | 385 F(HasFastObjectElements, 1, 1) \ |
| 383 F(HasFastDoubleElements, 1, 1) \ | 386 F(HasFastDoubleElements, 1, 1) \ |
| 384 F(HasFastHoleyElements, 1, 1) \ | 387 F(HasFastHoleyElements, 1, 1) \ |
| 385 F(HasDictionaryElements, 1, 1) \ | 388 F(HasDictionaryElements, 1, 1) \ |
| 386 F(HasSloppyArgumentsElements, 1, 1) \ | 389 F(HasSloppyArgumentsElements, 1, 1) \ |
| 387 F(HasExternalUint8ClampedElements, 1, 1) \ | 390 F(HasExternalUint8ClampedElements, 1, 1) \ |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 902 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; | 905 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; |
| 903 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; | 906 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; |
| 904 | 907 |
| 905 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; | 908 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; |
| 906 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; | 909 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; |
| 907 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; | 910 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; |
| 908 | 911 |
| 909 } } // namespace v8::internal | 912 } } // namespace v8::internal |
| 910 | 913 |
| 911 #endif // V8_RUNTIME_H_ | 914 #endif // V8_RUNTIME_H_ |
| OLD | NEW |