| 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 "allocation.h" | 8 #include "allocation.h" |
| 9 #include "zone.h" | 9 #include "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(DeleteProperty, 3, 1) \ | 28 F(DeleteProperty, 3, 1) \ |
| 29 F(HasLocalProperty, 2, 1) \ | 29 F(HasOwnProperty, 2, 1) \ |
| 30 F(HasProperty, 2, 1) \ | 30 F(HasProperty, 2, 1) \ |
| 31 F(HasElement, 2, 1) \ | 31 F(HasElement, 2, 1) \ |
| 32 F(IsPropertyEnumerable, 2, 1) \ | 32 F(IsPropertyEnumerable, 2, 1) \ |
| 33 F(GetPropertyNames, 1, 1) \ | 33 F(GetPropertyNames, 1, 1) \ |
| 34 F(GetPropertyNamesFast, 1, 1) \ | 34 F(GetPropertyNamesFast, 1, 1) \ |
| 35 F(GetLocalPropertyNames, 2, 1) \ | 35 F(GetOwnPropertyNames, 2, 1) \ |
| 36 F(GetLocalElementNames, 1, 1) \ | 36 F(GetOwnElementNames, 1, 1) \ |
| 37 F(GetInterceptorInfo, 1, 1) \ | 37 F(GetInterceptorInfo, 1, 1) \ |
| 38 F(GetNamedInterceptorPropertyNames, 1, 1) \ | 38 F(GetNamedInterceptorPropertyNames, 1, 1) \ |
| 39 F(GetIndexedInterceptorElementNames, 1, 1) \ | 39 F(GetIndexedInterceptorElementNames, 1, 1) \ |
| 40 F(GetArgumentsProperty, 1, 1) \ | 40 F(GetArgumentsProperty, 1, 1) \ |
| 41 F(ToFastProperties, 1, 1) \ | 41 F(ToFastProperties, 1, 1) \ |
| 42 F(FinishArrayPrototypeSetup, 1, 1) \ | 42 F(FinishArrayPrototypeSetup, 1, 1) \ |
| 43 F(SpecialArrayFunctions, 0, 1) \ | 43 F(SpecialArrayFunctions, 0, 1) \ |
| 44 F(IsSloppyModeFunction, 1, 1) \ | 44 F(IsSloppyModeFunction, 1, 1) \ |
| 45 F(GetDefaultReceiver, 1, 1) \ | 45 F(GetDefaultReceiver, 1, 1) \ |
| 46 \ | 46 \ |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 \ | 351 \ |
| 352 /* Debugging */ \ | 352 /* Debugging */ \ |
| 353 F(DebugPrint, 1, 1) \ | 353 F(DebugPrint, 1, 1) \ |
| 354 F(GlobalPrint, 1, 1) \ | 354 F(GlobalPrint, 1, 1) \ |
| 355 F(DebugTrace, 0, 1) \ | 355 F(DebugTrace, 0, 1) \ |
| 356 F(TraceEnter, 0, 1) \ | 356 F(TraceEnter, 0, 1) \ |
| 357 F(TraceExit, 1, 1) \ | 357 F(TraceExit, 1, 1) \ |
| 358 F(Abort, 1, 1) \ | 358 F(Abort, 1, 1) \ |
| 359 F(AbortJS, 1, 1) \ | 359 F(AbortJS, 1, 1) \ |
| 360 /* ES5 */ \ | 360 /* ES5 */ \ |
| 361 F(LocalKeys, 1, 1) \ | 361 F(OwnKeys, 1, 1) \ |
| 362 \ | 362 \ |
| 363 /* Message objects */ \ | 363 /* Message objects */ \ |
| 364 F(MessageGetStartPosition, 1, 1) \ | 364 F(MessageGetStartPosition, 1, 1) \ |
| 365 F(MessageGetScript, 1, 1) \ | 365 F(MessageGetScript, 1, 1) \ |
| 366 \ | 366 \ |
| 367 /* Pseudo functions - handled as macros by parser */ \ | 367 /* Pseudo functions - handled as macros by parser */ \ |
| 368 F(IS_VAR, 1, 1) \ | 368 F(IS_VAR, 1, 1) \ |
| 369 \ | 369 \ |
| 370 /* expose boolean functions from objects-inl.h */ \ | 370 /* expose boolean functions from objects-inl.h */ \ |
| 371 F(HasFastSmiElements, 1, 1) \ | 371 F(HasFastSmiElements, 1, 1) \ |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; | 892 class AllocateDoubleAlignFlag: public BitField<bool, 0, 1> {}; |
| 893 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; | 893 class AllocateTargetSpace: public BitField<AllocationSpace, 1, 3> {}; |
| 894 | 894 |
| 895 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; | 895 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {}; |
| 896 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; | 896 class DeclareGlobalsNativeFlag: public BitField<bool, 1, 1> {}; |
| 897 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; | 897 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; |
| 898 | 898 |
| 899 } } // namespace v8::internal | 899 } } // namespace v8::internal |
| 900 | 900 |
| 901 #endif // V8_RUNTIME_H_ | 901 #endif // V8_RUNTIME_H_ |
| OLD | NEW |