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 |