| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 // release and debug mode. | 38 // release and debug mode. |
| 39 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. | 39 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. |
| 40 | 40 |
| 41 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused | 41 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused |
| 42 // MSVC Intellisense to crash. It was broken into two macros to work around | 42 // MSVC Intellisense to crash. It was broken into two macros to work around |
| 43 // this problem. Please avoid large recursive macros whenever possible. | 43 // this problem. Please avoid large recursive macros whenever possible. |
| 44 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ | 44 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ |
| 45 /* Property access */ \ | 45 /* Property access */ \ |
| 46 F(GetProperty, 2, 1) \ | 46 F(GetProperty, 2, 1) \ |
| 47 F(KeyedGetProperty, 2, 1) \ | 47 F(KeyedGetProperty, 2, 1) \ |
| 48 F(DeleteProperty, 2, 1) \ | 48 F(DeleteProperty, 3, 1) \ |
| 49 F(HasLocalProperty, 2, 1) \ | 49 F(HasLocalProperty, 2, 1) \ |
| 50 F(HasProperty, 2, 1) \ | 50 F(HasProperty, 2, 1) \ |
| 51 F(HasElement, 2, 1) \ | 51 F(HasElement, 2, 1) \ |
| 52 F(IsPropertyEnumerable, 2, 1) \ | 52 F(IsPropertyEnumerable, 2, 1) \ |
| 53 F(GetPropertyNames, 1, 1) \ | 53 F(GetPropertyNames, 1, 1) \ |
| 54 F(GetPropertyNamesFast, 1, 1) \ | 54 F(GetPropertyNamesFast, 1, 1) \ |
| 55 F(GetLocalPropertyNames, 1, 1) \ | 55 F(GetLocalPropertyNames, 1, 1) \ |
| 56 F(GetLocalElementNames, 1, 1) \ | 56 F(GetLocalElementNames, 1, 1) \ |
| 57 F(GetInterceptorInfo, 1, 1) \ | 57 F(GetInterceptorInfo, 1, 1) \ |
| 58 F(GetNamedInterceptorPropertyNames, 1, 1) \ | 58 F(GetNamedInterceptorPropertyNames, 1, 1) \ |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 F(StringFromCharCodeArray, 1, 1) \ | 100 F(StringFromCharCodeArray, 1, 1) \ |
| 101 F(StringParseInt, 2, 1) \ | 101 F(StringParseInt, 2, 1) \ |
| 102 F(StringParseFloat, 1, 1) \ | 102 F(StringParseFloat, 1, 1) \ |
| 103 F(StringToLowerCase, 1, 1) \ | 103 F(StringToLowerCase, 1, 1) \ |
| 104 F(StringToUpperCase, 1, 1) \ | 104 F(StringToUpperCase, 1, 1) \ |
| 105 F(StringSplit, 3, 1) \ | 105 F(StringSplit, 3, 1) \ |
| 106 F(CharFromCode, 1, 1) \ | 106 F(CharFromCode, 1, 1) \ |
| 107 F(URIEscape, 1, 1) \ | 107 F(URIEscape, 1, 1) \ |
| 108 F(URIUnescape, 1, 1) \ | 108 F(URIUnescape, 1, 1) \ |
| 109 F(QuoteJSONString, 1, 1) \ | 109 F(QuoteJSONString, 1, 1) \ |
| 110 F(QuoteJSONStringComma, 1, 1) \ |
| 110 \ | 111 \ |
| 111 F(NumberToString, 1, 1) \ | 112 F(NumberToString, 1, 1) \ |
| 112 F(NumberToStringSkipCache, 1, 1) \ | 113 F(NumberToStringSkipCache, 1, 1) \ |
| 113 F(NumberToInteger, 1, 1) \ | 114 F(NumberToInteger, 1, 1) \ |
| 114 F(NumberToIntegerMapMinusZero, 1, 1) \ | 115 F(NumberToIntegerMapMinusZero, 1, 1) \ |
| 115 F(NumberToJSUint32, 1, 1) \ | 116 F(NumberToJSUint32, 1, 1) \ |
| 116 F(NumberToJSInt32, 1, 1) \ | 117 F(NumberToJSInt32, 1, 1) \ |
| 117 F(NumberToSmi, 1, 1) \ | 118 F(NumberToSmi, 1, 1) \ |
| 118 F(AllocateHeapNumber, 0, 1) \ | 119 F(AllocateHeapNumber, 0, 1) \ |
| 119 \ | 120 \ |
| 120 /* Arithmetic operations */ \ | 121 /* Arithmetic operations */ \ |
| 121 F(NumberAdd, 2, 1) \ | 122 F(NumberAdd, 2, 1) \ |
| 122 F(NumberSub, 2, 1) \ | 123 F(NumberSub, 2, 1) \ |
| 123 F(NumberMul, 2, 1) \ | 124 F(NumberMul, 2, 1) \ |
| 124 F(NumberDiv, 2, 1) \ | 125 F(NumberDiv, 2, 1) \ |
| 125 F(NumberMod, 2, 1) \ | 126 F(NumberMod, 2, 1) \ |
| 126 F(NumberUnaryMinus, 1, 1) \ | 127 F(NumberUnaryMinus, 1, 1) \ |
| 127 F(NumberAlloc, 0, 1) \ | 128 F(NumberAlloc, 0, 1) \ |
| 128 \ | 129 \ |
| 129 F(StringAdd, 2, 1) \ | 130 F(StringAdd, 2, 1) \ |
| 130 F(StringBuilderConcat, 3, 1) \ | 131 F(StringBuilderConcat, 3, 1) \ |
| 132 F(StringBuilderJoin, 3, 1) \ |
| 131 \ | 133 \ |
| 132 /* Bit operations */ \ | 134 /* Bit operations */ \ |
| 133 F(NumberOr, 2, 1) \ | 135 F(NumberOr, 2, 1) \ |
| 134 F(NumberAnd, 2, 1) \ | 136 F(NumberAnd, 2, 1) \ |
| 135 F(NumberXor, 2, 1) \ | 137 F(NumberXor, 2, 1) \ |
| 136 F(NumberNot, 1, 1) \ | 138 F(NumberNot, 1, 1) \ |
| 137 \ | 139 \ |
| 138 F(NumberShl, 2, 1) \ | 140 F(NumberShl, 2, 1) \ |
| 139 F(NumberShr, 2, 1) \ | 141 F(NumberShr, 2, 1) \ |
| 140 F(NumberSar, 2, 1) \ | 142 F(NumberSar, 2, 1) \ |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 F(DateYMDFromTime, 2, 1) \ | 232 F(DateYMDFromTime, 2, 1) \ |
| 231 \ | 233 \ |
| 232 /* Numbers */ \ | 234 /* Numbers */ \ |
| 233 \ | 235 \ |
| 234 /* Globals */ \ | 236 /* Globals */ \ |
| 235 F(CompileString, 1, 1) \ | 237 F(CompileString, 1, 1) \ |
| 236 F(GlobalPrint, 1, 1) \ | 238 F(GlobalPrint, 1, 1) \ |
| 237 \ | 239 \ |
| 238 /* Eval */ \ | 240 /* Eval */ \ |
| 239 F(GlobalReceiver, 1, 1) \ | 241 F(GlobalReceiver, 1, 1) \ |
| 240 F(ResolvePossiblyDirectEval, 3, 2) \ | 242 F(ResolvePossiblyDirectEval, 4, 2) \ |
| 241 F(ResolvePossiblyDirectEvalNoLookup, 3, 2) \ | 243 F(ResolvePossiblyDirectEvalNoLookup, 4, 2) \ |
| 242 \ | 244 \ |
| 243 F(SetProperty, -1 /* 3 or 4 */, 1) \ | 245 F(SetProperty, -1 /* 3 or 4 */, 1) \ |
| 244 F(DefineOrRedefineDataProperty, 4, 1) \ | 246 F(DefineOrRedefineDataProperty, 4, 1) \ |
| 245 F(DefineOrRedefineAccessorProperty, 5, 1) \ | 247 F(DefineOrRedefineAccessorProperty, 5, 1) \ |
| 246 F(IgnoreAttributesAndSetProperty, -1 /* 3 or 4 */, 1) \ | 248 F(IgnoreAttributesAndSetProperty, -1 /* 3 or 4 */, 1) \ |
| 247 \ | 249 \ |
| 248 /* Arrays */ \ | 250 /* Arrays */ \ |
| 249 F(RemoveArrayHoles, 2, 1) \ | 251 F(RemoveArrayHoles, 2, 1) \ |
| 250 F(GetArrayKeys, 2, 1) \ | 252 F(GetArrayKeys, 2, 1) \ |
| 251 F(MoveArrayContents, 2, 1) \ | 253 F(MoveArrayContents, 2, 1) \ |
| (...skipping 25 matching lines...) Expand all Loading... |
| 277 F(Throw, 1, 1) \ | 279 F(Throw, 1, 1) \ |
| 278 F(ReThrow, 1, 1) \ | 280 F(ReThrow, 1, 1) \ |
| 279 F(ThrowReferenceError, 1, 1) \ | 281 F(ThrowReferenceError, 1, 1) \ |
| 280 F(StackGuard, 0, 1) \ | 282 F(StackGuard, 0, 1) \ |
| 281 F(PromoteScheduledException, 0, 1) \ | 283 F(PromoteScheduledException, 0, 1) \ |
| 282 \ | 284 \ |
| 283 /* Contexts */ \ | 285 /* Contexts */ \ |
| 284 F(NewContext, 1, 1) \ | 286 F(NewContext, 1, 1) \ |
| 285 F(PushContext, 1, 1) \ | 287 F(PushContext, 1, 1) \ |
| 286 F(PushCatchContext, 1, 1) \ | 288 F(PushCatchContext, 1, 1) \ |
| 287 F(LookupContext, 2, 1) \ | 289 F(DeleteContextSlot, 2, 1) \ |
| 288 F(LoadContextSlot, 2, 2) \ | 290 F(LoadContextSlot, 2, 2) \ |
| 289 F(LoadContextSlotNoReferenceError, 2, 2) \ | 291 F(LoadContextSlotNoReferenceError, 2, 2) \ |
| 290 F(StoreContextSlot, 3, 1) \ | 292 F(StoreContextSlot, 3, 1) \ |
| 291 \ | 293 \ |
| 292 /* Declarations and initialization */ \ | 294 /* Declarations and initialization */ \ |
| 293 F(DeclareGlobals, 3, 1) \ | 295 F(DeclareGlobals, 3, 1) \ |
| 294 F(DeclareContextSlot, 4, 1) \ | 296 F(DeclareContextSlot, 4, 1) \ |
| 295 F(InitializeVarGlobal, -1 /* 1 or 2 */, 1) \ | 297 F(InitializeVarGlobal, -1 /* 1 or 2 */, 1) \ |
| 296 F(InitializeConstGlobal, 2, 1) \ | 298 F(InitializeConstGlobal, 2, 1) \ |
| 297 F(InitializeConstContextSlot, 3, 1) \ | 299 F(InitializeConstContextSlot, 3, 1) \ |
| 298 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \ | 300 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \ |
| 299 \ | 301 \ |
| 300 /* Debugging */ \ | 302 /* Debugging */ \ |
| 301 F(DebugPrint, 1, 1) \ | 303 F(DebugPrint, 1, 1) \ |
| 302 F(DebugTrace, 0, 1) \ | 304 F(DebugTrace, 0, 1) \ |
| 303 F(TraceEnter, 0, 1) \ | 305 F(TraceEnter, 0, 1) \ |
| 304 F(TraceExit, 1, 1) \ | 306 F(TraceExit, 1, 1) \ |
| 305 F(Abort, 2, 1) \ | 307 F(Abort, 2, 1) \ |
| 306 /* Logging */ \ | 308 /* Logging */ \ |
| 307 F(Log, 2, 1) \ | 309 F(Log, 2, 1) \ |
| 308 /* ES5 */ \ | 310 /* ES5 */ \ |
| 309 F(LocalKeys, 1, 1) \ | 311 F(LocalKeys, 1, 1) \ |
| 310 /* Cache suport */ \ | 312 /* Cache suport */ \ |
| 311 F(GetFromCache, 2, 1) \ | 313 F(GetFromCache, 2, 1) \ |
| 312 \ | 314 \ |
| 315 /* Message objects */ \ |
| 316 F(NewMessageObject, 2, 1) \ |
| 317 F(MessageGetType, 1, 1) \ |
| 318 F(MessageGetArguments, 1, 1) \ |
| 319 F(MessageGetStartPosition, 1, 1) \ |
| 320 F(MessageGetScript, 1, 1) \ |
| 321 \ |
| 313 /* Pseudo functions - handled as macros by parser */ \ | 322 /* Pseudo functions - handled as macros by parser */ \ |
| 314 F(IS_VAR, 1, 1) | 323 F(IS_VAR, 1, 1) |
| 315 | 324 |
| 316 #ifdef ENABLE_DEBUGGER_SUPPORT | 325 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 317 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) \ | 326 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) \ |
| 318 /* Debugger support*/ \ | 327 /* Debugger support*/ \ |
| 319 F(DebugBreak, 0, 1) \ | 328 F(DebugBreak, 0, 1) \ |
| 320 F(SetDebugEventListener, 2, 1) \ | 329 F(SetDebugEventListener, 2, 1) \ |
| 321 F(Break, 0, 1) \ | 330 F(Break, 0, 1) \ |
| 322 F(DebugGetPropertyDetails, 2, 1) \ | 331 F(DebugGetPropertyDetails, 2, 1) \ |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 F(FunctionGetInferredName, 1, 1) \ | 364 F(FunctionGetInferredName, 1, 1) \ |
| 356 F(LiveEditFindSharedFunctionInfosForScript, 1, 1) \ | 365 F(LiveEditFindSharedFunctionInfosForScript, 1, 1) \ |
| 357 F(LiveEditGatherCompileInfo, 2, 1) \ | 366 F(LiveEditGatherCompileInfo, 2, 1) \ |
| 358 F(LiveEditReplaceScript, 3, 1) \ | 367 F(LiveEditReplaceScript, 3, 1) \ |
| 359 F(LiveEditReplaceFunctionCode, 2, 1) \ | 368 F(LiveEditReplaceFunctionCode, 2, 1) \ |
| 360 F(LiveEditFunctionSourceUpdated, 1, 1) \ | 369 F(LiveEditFunctionSourceUpdated, 1, 1) \ |
| 361 F(LiveEditFunctionSetScript, 2, 1) \ | 370 F(LiveEditFunctionSetScript, 2, 1) \ |
| 362 F(LiveEditReplaceRefToNestedFunction, 3, 1) \ | 371 F(LiveEditReplaceRefToNestedFunction, 3, 1) \ |
| 363 F(LiveEditPatchFunctionPositions, 2, 1) \ | 372 F(LiveEditPatchFunctionPositions, 2, 1) \ |
| 364 F(LiveEditCheckAndDropActivations, 2, 1) \ | 373 F(LiveEditCheckAndDropActivations, 2, 1) \ |
| 365 F(LiveEditCompareStringsLinewise, 2, 1) \ | 374 F(LiveEditCompareStrings, 2, 1) \ |
| 366 F(GetFunctionCodePositionFromSource, 2, 1) \ | 375 F(GetFunctionCodePositionFromSource, 2, 1) \ |
| 367 F(ExecuteInDebugContext, 2, 1) | 376 F(ExecuteInDebugContext, 2, 1) \ |
| 377 \ |
| 378 F(SetFlags, 1, 1) \ |
| 379 F(CollectGarbage, 1, 1) \ |
| 380 F(GetHeapUsage, 0, 1) |
| 381 |
| 368 #else | 382 #else |
| 369 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) | 383 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) |
| 370 #endif | 384 #endif |
| 371 | 385 |
| 372 #ifdef ENABLE_LOGGING_AND_PROFILING | 386 #ifdef ENABLE_LOGGING_AND_PROFILING |
| 373 #define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F) \ | 387 #define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F) \ |
| 374 F(ProfilerResume, 2, 1) \ | 388 F(ProfilerResume, 2, 1) \ |
| 375 F(ProfilerPause, 2, 1) | 389 F(ProfilerPause, 2, 1) |
| 376 #else | 390 #else |
| 377 #define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F) | 391 #define RUNTIME_FUNCTION_LIST_PROFILER_SUPPORT(F) |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 int position); | 559 int position); |
| 546 | 560 |
| 547 // Helper functions used stubs. | 561 // Helper functions used stubs. |
| 548 static void PerformGC(Object* result); | 562 static void PerformGC(Object* result); |
| 549 }; | 563 }; |
| 550 | 564 |
| 551 | 565 |
| 552 } } // namespace v8::internal | 566 } } // namespace v8::internal |
| 553 | 567 |
| 554 #endif // V8_RUNTIME_H_ | 568 #endif // V8_RUNTIME_H_ |
| OLD | NEW |