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

Side by Side Diff: include/v8.h

Issue 148503002: A64: Synchronize with r15545. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 months 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 | « build/standalone.gypi ('k') | include/v8-profiler.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 2359 matching lines...) Expand 10 before | Expand all | Expand 10 after
2370 ScriptOrigin GetScriptOrigin() const; 2370 ScriptOrigin GetScriptOrigin() const;
2371 V8_INLINE(static Function* Cast(Value* obj)); 2371 V8_INLINE(static Function* Cast(Value* obj));
2372 static const int kLineOffsetNotFound; 2372 static const int kLineOffsetNotFound;
2373 2373
2374 private: 2374 private:
2375 Function(); 2375 Function();
2376 static void CheckCast(Value* obj); 2376 static void CheckCast(Value* obj);
2377 }; 2377 };
2378 2378
2379 #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2379 #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT
2380 // The number of required internal fields can be defined by embedder.
2380 #define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2 2381 #define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2
2381 #endif 2382 #endif
2382 2383
2383 /** 2384 /**
2384 * An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5). 2385 * An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5).
2385 * This API is experimental and may change significantly. 2386 * This API is experimental and may change significantly.
2386 */ 2387 */
2387 class V8EXPORT ArrayBuffer : public Object { 2388 class V8EXPORT ArrayBuffer : public Object {
2388 public: 2389 public:
2389 /** 2390 /**
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2482 V8_INLINE(static ArrayBuffer* Cast(Value* obj)); 2483 V8_INLINE(static ArrayBuffer* Cast(Value* obj));
2483 2484
2484 static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT; 2485 static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT;
2485 2486
2486 private: 2487 private:
2487 ArrayBuffer(); 2488 ArrayBuffer();
2488 static void CheckCast(Value* obj); 2489 static void CheckCast(Value* obj);
2489 }; 2490 };
2490 2491
2491 2492
2493 #ifndef V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT
2494 // The number of required internal fields can be defined by embedder.
2495 #define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2
2496 #endif
2497
2498
2492 /** 2499 /**
2493 * A base class for an instance of one of "views" over ArrayBuffer, 2500 * A base class for an instance of one of "views" over ArrayBuffer,
2494 * including TypedArrays and DataView (ES6 draft 15.13). 2501 * including TypedArrays and DataView (ES6 draft 15.13).
2495 * 2502 *
2496 * This API is experimental and may change significantly. 2503 * This API is experimental and may change significantly.
2497 */ 2504 */
2498 class V8EXPORT ArrayBufferView : public Object { 2505 class V8EXPORT ArrayBufferView : public Object {
2499 public: 2506 public:
2500 /** 2507 /**
2501 * Returns underlying ArrayBuffer. 2508 * Returns underlying ArrayBuffer.
2502 */ 2509 */
2503 Local<ArrayBuffer> Buffer(); 2510 Local<ArrayBuffer> Buffer();
2504 /** 2511 /**
2505 * Byte offset in |Buffer|. 2512 * Byte offset in |Buffer|.
2506 */ 2513 */
2507 size_t ByteOffset(); 2514 size_t ByteOffset();
2508 /** 2515 /**
2509 * Size of a view in bytes. 2516 * Size of a view in bytes.
2510 */ 2517 */
2511 size_t ByteLength(); 2518 size_t ByteLength();
2512 /** 2519 /**
2513 * Base address of a view. 2520 * Base address of a view.
2514 */ 2521 */
2515 void* BaseAddress(); 2522 void* BaseAddress();
2516 2523
2517 V8_INLINE(static ArrayBufferView* Cast(Value* obj)); 2524 V8_INLINE(static ArrayBufferView* Cast(Value* obj));
2518 2525
2526 static const int kInternalFieldCount =
2527 V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT;
2528
2519 private: 2529 private:
2520 ArrayBufferView(); 2530 ArrayBufferView();
2521 static void CheckCast(Value* obj); 2531 static void CheckCast(Value* obj);
2522 }; 2532 };
2523 2533
2524 2534
2525 /** 2535 /**
2526 * A base class for an instance of TypedArray series of constructors 2536 * A base class for an instance of TypedArray series of constructors
2527 * (ES6 draft 15.13.6). 2537 * (ES6 draft 15.13.6).
2528 * This API is experimental and may change significantly. 2538 * This API is experimental and may change significantly.
(...skipping 1457 matching lines...) Expand 10 before | Expand all | Expand 10 after
3986 */ 3996 */
3987 intptr_t AdjustAmountOfExternalAllocatedMemory(intptr_t change_in_bytes); 3997 intptr_t AdjustAmountOfExternalAllocatedMemory(intptr_t change_in_bytes);
3988 3998
3989 /** 3999 /**
3990 * Returns heap profiler for this isolate. Will return NULL until the isolate 4000 * Returns heap profiler for this isolate. Will return NULL until the isolate
3991 * is initialized. 4001 * is initialized.
3992 */ 4002 */
3993 HeapProfiler* GetHeapProfiler(); 4003 HeapProfiler* GetHeapProfiler();
3994 4004
3995 /** 4005 /**
3996 * Returns CPU profiler for this isolate. Will return NULL until the isolate 4006 * Returns CPU profiler for this isolate. Will return NULL unless the isolate
3997 * is initialized. 4007 * is initialized. It is the embedder's responsibility to stop all CPU
4008 * profiling activities if it has started any.
3998 */ 4009 */
3999 CpuProfiler* GetCpuProfiler(); 4010 CpuProfiler* GetCpuProfiler();
4000 4011
4001 /** Returns the context that is on the top of the stack. */ 4012 /** Returns the context that is on the top of the stack. */
4002 Local<Context> GetCurrentContext(); 4013 Local<Context> GetCurrentContext();
4003 4014
4004 /** 4015 /**
4005 * Allows the host application to group objects together. If one 4016 * Allows the host application to group objects together. If one
4006 * object in the group is alive, all objects in the group are alive. 4017 * object in the group is alive, all objects in the group are alive.
4007 * After each garbage collection, object groups are removed. It is 4018 * After each garbage collection, object groups are removed. It is
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
4470 static void SetEntropySource(EntropySource source); 4481 static void SetEntropySource(EntropySource source);
4471 4482
4472 /** 4483 /**
4473 * Allows the host application to provide a callback that allows v8 to 4484 * Allows the host application to provide a callback that allows v8 to
4474 * cooperate with a profiler that rewrites return addresses on stack. 4485 * cooperate with a profiler that rewrites return addresses on stack.
4475 */ 4486 */
4476 static void SetReturnAddressLocationResolver( 4487 static void SetReturnAddressLocationResolver(
4477 ReturnAddressLocationResolver return_address_resolver); 4488 ReturnAddressLocationResolver return_address_resolver);
4478 4489
4479 /** 4490 /**
4491 * Deprecated, use the variant with the Isolate parameter below instead.
4492 */
4493 V8_DEPRECATED(static bool SetFunctionEntryHook(FunctionEntryHook entry_hook));
4494
4495 /**
4480 * Allows the host application to provide the address of a function that's 4496 * Allows the host application to provide the address of a function that's
4481 * invoked on entry to every V8-generated function. 4497 * invoked on entry to every V8-generated function.
4482 * Note that \p entry_hook is invoked at the very start of each 4498 * Note that \p entry_hook is invoked at the very start of each
4483 * generated function. 4499 * generated function.
4484 * 4500 *
4501 * \param isolate the isolate to operate on.
4485 * \param entry_hook a function that will be invoked on entry to every 4502 * \param entry_hook a function that will be invoked on entry to every
4486 * V8-generated function. 4503 * V8-generated function.
4487 * \returns true on success on supported platforms, false on failure. 4504 * \returns true on success on supported platforms, false on failure.
4488 * \note Setting a new entry hook function when one is already active will 4505 * \note Setting an entry hook can only be done very early in an isolates
4489 * fail. 4506 * lifetime, and once set, the entry hook cannot be revoked.
4490 */ 4507 */
4491 static bool SetFunctionEntryHook(FunctionEntryHook entry_hook); 4508 static bool SetFunctionEntryHook(Isolate* isolate,
4509 FunctionEntryHook entry_hook);
4492 4510
4493 /** 4511 /**
4494 * Allows the host application to provide the address of a function that is 4512 * Allows the host application to provide the address of a function that is
4495 * notified each time code is added, moved or removed. 4513 * notified each time code is added, moved or removed.
4496 * 4514 *
4497 * \param options options for the JIT code event handler. 4515 * \param options options for the JIT code event handler.
4498 * \param event_handler the JIT code event handler, which will be invoked 4516 * \param event_handler the JIT code event handler, which will be invoked
4499 * each time code is added, moved or removed. 4517 * each time code is added, moved or removed.
4500 * \note \p event_handler won't get notified of existent code. 4518 * \note \p event_handler won't get notified of existent code.
4501 * \note since code removal notifications are not currently issued, the 4519 * \note since code removal notifications are not currently issued, the
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
4809 private: 4827 private:
4810 // Make it hard to create heap-allocated TryCatch blocks. 4828 // Make it hard to create heap-allocated TryCatch blocks.
4811 TryCatch(const TryCatch&); 4829 TryCatch(const TryCatch&);
4812 void operator=(const TryCatch&); 4830 void operator=(const TryCatch&);
4813 void* operator new(size_t size); 4831 void* operator new(size_t size);
4814 void operator delete(void*, size_t); 4832 void operator delete(void*, size_t);
4815 4833
4816 v8::internal::Isolate* isolate_; 4834 v8::internal::Isolate* isolate_;
4817 void* next_; 4835 void* next_;
4818 void* exception_; 4836 void* exception_;
4819 void* message_; 4837 void* message_obj_;
4838 void* message_script_;
4839 int message_start_pos_;
4840 int message_end_pos_;
4820 bool is_verbose_ : 1; 4841 bool is_verbose_ : 1;
4821 bool can_continue_ : 1; 4842 bool can_continue_ : 1;
4822 bool capture_message_ : 1; 4843 bool capture_message_ : 1;
4823 bool rethrow_ : 1; 4844 bool rethrow_ : 1;
4824 bool has_terminated_ : 1; 4845 bool has_terminated_ : 1;
4825 4846
4826 friend class v8::internal::Isolate; 4847 friend class v8::internal::Isolate;
4827 }; 4848 };
4828 4849
4829 4850
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
5375 static const int kEmptyStringRootIndex = 131; 5396 static const int kEmptyStringRootIndex = 131;
5376 5397
5377 static const int kNodeClassIdOffset = 1 * kApiPointerSize; 5398 static const int kNodeClassIdOffset = 1 * kApiPointerSize;
5378 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; 5399 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3;
5379 static const int kNodeStateMask = 0xf; 5400 static const int kNodeStateMask = 0xf;
5380 static const int kNodeStateIsWeakValue = 2; 5401 static const int kNodeStateIsWeakValue = 2;
5381 static const int kNodeStateIsNearDeathValue = 4; 5402 static const int kNodeStateIsNearDeathValue = 4;
5382 static const int kNodeIsIndependentShift = 4; 5403 static const int kNodeIsIndependentShift = 4;
5383 static const int kNodeIsPartiallyDependentShift = 5; 5404 static const int kNodeIsPartiallyDependentShift = 5;
5384 5405
5385 static const int kJSObjectType = 0xb0; 5406 static const int kJSObjectType = 0xb1;
5386 static const int kFirstNonstringType = 0x80; 5407 static const int kFirstNonstringType = 0x80;
5387 static const int kOddballType = 0x83; 5408 static const int kOddballType = 0x83;
5388 static const int kForeignType = 0x88; 5409 static const int kForeignType = 0x88;
5389 5410
5390 static const int kUndefinedOddballKind = 5; 5411 static const int kUndefinedOddballKind = 5;
5391 static const int kNullOddballKind = 3; 5412 static const int kNullOddballKind = 3;
5392 5413
5414 static void CheckInitializedImpl(v8::Isolate* isolate);
5415 V8_INLINE(static void CheckInitialized(v8::Isolate* isolate)) {
5393 #ifdef V8_ENABLE_CHECKS 5416 #ifdef V8_ENABLE_CHECKS
5394 static void CheckInitialized(v8::Isolate* isolate); 5417 CheckInitializedImpl(isolate);
5395 #else
5396 static void CheckInitialized(v8::Isolate* isolate) { }
5397 #endif 5418 #endif
5419 }
5398 5420
5399 V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) { 5421 V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) {
5400 return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) == 5422 return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) ==
5401 kHeapObjectTag); 5423 kHeapObjectTag);
5402 } 5424 }
5403 5425
5404 V8_INLINE(static int SmiValue(internal::Object* value)) { 5426 V8_INLINE(static int SmiValue(internal::Object* value)) {
5405 return PlatformSmiTagging::SmiToInt(value); 5427 return PlatformSmiTagging::SmiToInt(value);
5406 } 5428 }
5407 5429
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after
6453 6475
6454 6476
6455 } // namespace v8 6477 } // namespace v8
6456 6478
6457 6479
6458 #undef V8EXPORT 6480 #undef V8EXPORT
6459 #undef TYPE_CHECK 6481 #undef TYPE_CHECK
6460 6482
6461 6483
6462 #endif // V8_H_ 6484 #endif // V8_H_
OLDNEW
« no previous file with comments | « build/standalone.gypi ('k') | include/v8-profiler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698