Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: src/runtime.h

Issue 8404030: Version 3.7.1 (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/regexp.js ('k') | src/runtime.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 /* Numbers */ \ 204 /* Numbers */ \
205 F(NumberToRadixString, 2, 1) \ 205 F(NumberToRadixString, 2, 1) \
206 F(NumberToFixed, 2, 1) \ 206 F(NumberToFixed, 2, 1) \
207 F(NumberToExponential, 2, 1) \ 207 F(NumberToExponential, 2, 1) \
208 F(NumberToPrecision, 2, 1) 208 F(NumberToPrecision, 2, 1)
209 209
210 #define RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ 210 #define RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \
211 /* Reflection */ \ 211 /* Reflection */ \
212 F(FunctionSetInstanceClassName, 2, 1) \ 212 F(FunctionSetInstanceClassName, 2, 1) \
213 F(FunctionSetLength, 2, 1) \ 213 F(FunctionSetLength, 2, 1) \
214 F(BoundFunctionSetLength, 2, 1) \
215 F(FunctionSetPrototype, 2, 1) \ 214 F(FunctionSetPrototype, 2, 1) \
216 F(FunctionSetReadOnlyPrototype, 1, 1) \ 215 F(FunctionSetReadOnlyPrototype, 1, 1) \
217 F(FunctionGetName, 1, 1) \ 216 F(FunctionGetName, 1, 1) \
218 F(FunctionSetName, 2, 1) \ 217 F(FunctionSetName, 2, 1) \
219 F(FunctionNameShouldPrintAsAnonymous, 1, 1) \ 218 F(FunctionNameShouldPrintAsAnonymous, 1, 1) \
220 F(FunctionMarkNameShouldPrintAsAnonymous, 1, 1) \ 219 F(FunctionMarkNameShouldPrintAsAnonymous, 1, 1) \
221 F(FunctionSetBound, 1, 1) \ 220 F(FunctionBindArguments, 4, 1) \
221 F(BoundFunctionGetBindings, 1, 1) \
222 F(FunctionRemovePrototype, 1, 1) \ 222 F(FunctionRemovePrototype, 1, 1) \
223 F(FunctionGetSourceCode, 1, 1) \ 223 F(FunctionGetSourceCode, 1, 1) \
224 F(FunctionGetScript, 1, 1) \ 224 F(FunctionGetScript, 1, 1) \
225 F(FunctionGetScriptSourcePosition, 1, 1) \ 225 F(FunctionGetScriptSourcePosition, 1, 1) \
226 F(FunctionGetPositionForOffset, 2, 1) \ 226 F(FunctionGetPositionForOffset, 2, 1) \
227 F(FunctionIsAPIFunction, 1, 1) \ 227 F(FunctionIsAPIFunction, 1, 1) \
228 F(FunctionIsBuiltin, 1, 1) \ 228 F(FunctionIsBuiltin, 1, 1) \
229 F(GetScript, 1, 1) \ 229 F(GetScript, 1, 1) \
230 F(CollectStackTrace, 2, 1) \ 230 F(CollectStackTrace, 2, 1) \
231 F(GetV8Version, 0, 1) \ 231 F(GetV8Version, 0, 1) \
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 F(MoveArrayContents, 2, 1) \ 271 F(MoveArrayContents, 2, 1) \
272 F(EstimateNumberOfElements, 1, 1) \ 272 F(EstimateNumberOfElements, 1, 1) \
273 F(SwapElements, 3, 1) \ 273 F(SwapElements, 3, 1) \
274 \ 274 \
275 /* Getters and Setters */ \ 275 /* Getters and Setters */ \
276 F(DefineAccessor, -1 /* 4 or 5 */, 1) \ 276 F(DefineAccessor, -1 /* 4 or 5 */, 1) \
277 F(LookupAccessor, 3, 1) \ 277 F(LookupAccessor, 3, 1) \
278 \ 278 \
279 /* Literals */ \ 279 /* Literals */ \
280 F(MaterializeRegExpLiteral, 4, 1)\ 280 F(MaterializeRegExpLiteral, 4, 1)\
281 F(CreateArrayLiteralBoilerplate, 3, 1) \ 281 F(CreateArrayLiteralBoilerplate, 4, 1) \
282 F(CloneLiteralBoilerplate, 1, 1) \ 282 F(CloneLiteralBoilerplate, 1, 1) \
283 F(CloneShallowLiteralBoilerplate, 1, 1) \ 283 F(CloneShallowLiteralBoilerplate, 1, 1) \
284 F(CreateObjectLiteral, 4, 1) \ 284 F(CreateObjectLiteral, 4, 1) \
285 F(CreateObjectLiteralShallow, 4, 1) \ 285 F(CreateObjectLiteralShallow, 4, 1) \
286 F(CreateArrayLiteral, 3, 1) \ 286 F(CreateArrayLiteral, 3, 1) \
287 F(CreateArrayLiteralShallow, 3, 1) \ 287 F(CreateArrayLiteralShallow, 3, 1) \
288 \ 288 \
289 /* Harmony proxies */ \ 289 /* Harmony proxies */ \
290 F(CreateJSProxy, 2, 1) \ 290 F(CreateJSProxy, 2, 1) \
291 F(CreateJSFunctionProxy, 4, 1) \ 291 F(CreateJSFunctionProxy, 4, 1) \
292 F(IsJSProxy, 1, 1) \ 292 F(IsJSProxy, 1, 1) \
293 F(IsJSFunctionProxy, 1, 1) \ 293 F(IsJSFunctionProxy, 1, 1) \
294 F(GetHandler, 1, 1) \ 294 F(GetHandler, 1, 1) \
295 F(GetCallTrap, 1, 1) \ 295 F(GetCallTrap, 1, 1) \
296 F(GetConstructTrap, 1, 1) \ 296 F(GetConstructTrap, 1, 1) \
297 F(Fix, 1, 1) \ 297 F(Fix, 1, 1) \
298 \ 298 \
299 /* Harmony sets */ \
300 F(SetInitialize, 1, 1) \
301 F(SetAdd, 2, 1) \
302 F(SetHas, 2, 1) \
303 F(SetDelete, 2, 1) \
304 \
305 /* Harmony maps */ \
306 F(MapInitialize, 1, 1) \
307 F(MapGet, 2, 1) \
308 F(MapSet, 3, 1) \
309 \
299 /* Harmony weakmaps */ \ 310 /* Harmony weakmaps */ \
300 F(WeakMapInitialize, 1, 1) \ 311 F(WeakMapInitialize, 1, 1) \
301 F(WeakMapGet, 2, 1) \ 312 F(WeakMapGet, 2, 1) \
302 F(WeakMapSet, 3, 1) \ 313 F(WeakMapSet, 3, 1) \
303 \ 314 \
304 /* Statements */ \ 315 /* Statements */ \
305 F(NewClosure, 3, 1) \ 316 F(NewClosure, 3, 1) \
306 F(NewObject, 1, 1) \ 317 F(NewObject, 1, 1) \
307 F(NewObjectFromBound, 2, 1) \ 318 F(NewObjectFromBound, 1, 1) \
308 F(FinalizeInstanceSize, 1, 1) \ 319 F(FinalizeInstanceSize, 1, 1) \
309 F(Throw, 1, 1) \ 320 F(Throw, 1, 1) \
310 F(ReThrow, 1, 1) \ 321 F(ReThrow, 1, 1) \
311 F(ThrowReferenceError, 1, 1) \ 322 F(ThrowReferenceError, 1, 1) \
312 F(StackGuard, 0, 1) \ 323 F(StackGuard, 0, 1) \
313 F(PromoteScheduledException, 0, 1) \ 324 F(PromoteScheduledException, 0, 1) \
314 \ 325 \
315 /* Contexts */ \ 326 /* Contexts */ \
316 F(NewFunctionContext, 1, 1) \ 327 F(NewFunctionContext, 1, 1) \
317 F(PushWithContext, 2, 1) \ 328 F(PushWithContext, 2, 1) \
318 F(PushCatchContext, 3, 1) \ 329 F(PushCatchContext, 3, 1) \
319 F(PushBlockContext, 2, 1) \ 330 F(PushBlockContext, 2, 1) \
320 F(DeleteContextSlot, 2, 1) \ 331 F(DeleteContextSlot, 2, 1) \
321 F(LoadContextSlot, 2, 2) \ 332 F(LoadContextSlot, 2, 2) \
322 F(LoadContextSlotNoReferenceError, 2, 2) \ 333 F(LoadContextSlotNoReferenceError, 2, 2) \
323 F(StoreContextSlot, 4, 1) \ 334 F(StoreContextSlot, 4, 1) \
324 \ 335 \
325 /* Declarations and initialization */ \ 336 /* Declarations and initialization */ \
326 F(DeclareGlobals, 3, 1) \ 337 F(DeclareGlobals, 3, 1) \
327 F(DeclareContextSlot, 4, 1) \ 338 F(DeclareContextSlot, 4, 1) \
328 F(InitializeVarGlobal, -1 /* 2 or 3 */, 1) \ 339 F(InitializeVarGlobal, -1 /* 2 or 3 */, 1) \
329 F(InitializeConstGlobal, 2, 1) \ 340 F(InitializeConstGlobal, 2, 1) \
330 F(InitializeConstContextSlot, 3, 1) \ 341 F(InitializeConstContextSlot, 3, 1) \
331 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \ 342 F(OptimizeObjectForAddingMultipleProperties, 2, 1) \
332 \ 343 \
333 /* Arrays */ \
334 F(NonSmiElementStored, 1, 1) \
335 /* Debugging */ \ 344 /* Debugging */ \
336 F(DebugPrint, 1, 1) \ 345 F(DebugPrint, 1, 1) \
337 F(DebugTrace, 0, 1) \ 346 F(DebugTrace, 0, 1) \
347 F(TraceElementsKindTransition, 5, 1) \
338 F(TraceEnter, 0, 1) \ 348 F(TraceEnter, 0, 1) \
339 F(TraceExit, 1, 1) \ 349 F(TraceExit, 1, 1) \
340 F(Abort, 2, 1) \ 350 F(Abort, 2, 1) \
341 /* Logging */ \ 351 /* Logging */ \
342 F(Log, 2, 1) \ 352 F(Log, 2, 1) \
343 /* ES5 */ \ 353 /* ES5 */ \
344 F(LocalKeys, 1, 1) \ 354 F(LocalKeys, 1, 1) \
345 /* Cache suport */ \ 355 /* Cache suport */ \
346 F(GetFromCache, 2, 1) \ 356 F(GetFromCache, 2, 1) \
347 \ 357 \
(...skipping 15 matching lines...) Expand all
363 F(HasExternalPixelElements, 1, 1) \ 373 F(HasExternalPixelElements, 1, 1) \
364 F(HasExternalArrayElements, 1, 1) \ 374 F(HasExternalArrayElements, 1, 1) \
365 F(HasExternalByteElements, 1, 1) \ 375 F(HasExternalByteElements, 1, 1) \
366 F(HasExternalUnsignedByteElements, 1, 1) \ 376 F(HasExternalUnsignedByteElements, 1, 1) \
367 F(HasExternalShortElements, 1, 1) \ 377 F(HasExternalShortElements, 1, 1) \
368 F(HasExternalUnsignedShortElements, 1, 1) \ 378 F(HasExternalUnsignedShortElements, 1, 1) \
369 F(HasExternalIntElements, 1, 1) \ 379 F(HasExternalIntElements, 1, 1) \
370 F(HasExternalUnsignedIntElements, 1, 1) \ 380 F(HasExternalUnsignedIntElements, 1, 1) \
371 F(HasExternalFloatElements, 1, 1) \ 381 F(HasExternalFloatElements, 1, 1) \
372 F(HasExternalDoubleElements, 1, 1) \ 382 F(HasExternalDoubleElements, 1, 1) \
383 F(TransitionElementsSmiToDouble, 1, 1) \
384 F(TransitionElementsDoubleToObject, 1, 1) \
373 F(HaveSameMap, 2, 1) \ 385 F(HaveSameMap, 2, 1) \
374 /* profiler */ \ 386 /* profiler */ \
375 F(ProfilerResume, 0, 1) \ 387 F(ProfilerResume, 0, 1) \
376 F(ProfilerPause, 0, 1) 388 F(ProfilerPause, 0, 1)
377 389
378 390
379 #ifdef ENABLE_DEBUGGER_SUPPORT 391 #ifdef ENABLE_DEBUGGER_SUPPORT
380 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) \ 392 #define RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) \
381 /* Debugger support*/ \ 393 /* Debugger support*/ \
382 F(DebugBreak, 0, 1) \ 394 F(DebugBreak, 0, 1) \
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 static const Function* FunctionForId(FunctionId id); 633 static const Function* FunctionForId(FunctionId id);
622 634
623 // General-purpose helper functions for runtime system. 635 // General-purpose helper functions for runtime system.
624 static int StringMatch(Isolate* isolate, 636 static int StringMatch(Isolate* isolate,
625 Handle<String> sub, 637 Handle<String> sub,
626 Handle<String> pat, 638 Handle<String> pat,
627 int index); 639 int index);
628 640
629 static bool IsUpperCaseChar(RuntimeState* runtime_state, uint16_t ch); 641 static bool IsUpperCaseChar(RuntimeState* runtime_state, uint16_t ch);
630 642
631 // TODO(1240886): The following three methods are *not* handle safe, 643 // TODO(1240886): Some of the following methods are *not* handle safe, but
632 // but accept handle arguments. This seems fragile. 644 // accept handle arguments. This seems fragile.
633 645
634 // Support getting the characters in a string using [] notation as 646 // Support getting the characters in a string using [] notation as
635 // in Firefox/SpiderMonkey, Safari and Opera. 647 // in Firefox/SpiderMonkey, Safari and Opera.
636 MUST_USE_RESULT static MaybeObject* GetElementOrCharAt(Isolate* isolate, 648 MUST_USE_RESULT static MaybeObject* GetElementOrCharAt(Isolate* isolate,
637 Handle<Object> object, 649 Handle<Object> object,
638 uint32_t index); 650 uint32_t index);
639 MUST_USE_RESULT static MaybeObject* GetElement(Handle<Object> object,
640 uint32_t index);
641 651
642 MUST_USE_RESULT static MaybeObject* SetObjectProperty( 652 MUST_USE_RESULT static MaybeObject* SetObjectProperty(
643 Isolate* isolate, 653 Isolate* isolate,
644 Handle<Object> object, 654 Handle<Object> object,
645 Handle<Object> key, 655 Handle<Object> key,
646 Handle<Object> value, 656 Handle<Object> value,
647 PropertyAttributes attr, 657 PropertyAttributes attr,
648 StrictModeFlag strict_mode); 658 StrictModeFlag strict_mode);
649 659
650 MUST_USE_RESULT static MaybeObject* ForceSetObjectProperty( 660 MUST_USE_RESULT static MaybeObject* ForceSetObjectProperty(
(...skipping 19 matching lines...) Expand all
670 int position); 680 int position);
671 681
672 // Helper functions used stubs. 682 // Helper functions used stubs.
673 static void PerformGC(Object* result); 683 static void PerformGC(Object* result);
674 }; 684 };
675 685
676 686
677 //--------------------------------------------------------------------------- 687 //---------------------------------------------------------------------------
678 // Constants used by interface to runtime functions. 688 // Constants used by interface to runtime functions.
679 689
680 enum kDeclareGlobalsFlags { 690 class DeclareGlobalsEvalFlag: public BitField<bool, 0, 1> {};
681 kDeclareGlobalsEvalFlag = 1 << 0, 691 class DeclareGlobalsStrictModeFlag: public BitField<StrictModeFlag, 1, 1> {};
682 kDeclareGlobalsStrictModeFlag = 1 << 1, 692 class DeclareGlobalsNativeFlag: public BitField<bool, 2, 1> {};
683 kDeclareGlobalsNativeFlag = 1 << 2
684 };
685 693
686 } } // namespace v8::internal 694 } } // namespace v8::internal
687 695
688 #endif // V8_RUNTIME_H_ 696 #endif // V8_RUNTIME_H_
OLDNEW
« no previous file with comments | « src/regexp.js ('k') | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698