v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 1145 | skipping to change at line 1145 | |||
* Passes on the value set by the embedder when it fed the script from wh ich | * Passes on the value set by the embedder when it fed the script from wh ich | |||
* this Message was generated to V8. | * this Message was generated to V8. | |||
*/ | */ | |||
bool IsSharedCrossOrigin() const; | bool IsSharedCrossOrigin() const; | |||
// TODO(1245381): Print to a string instead of on a FILE. | // TODO(1245381): Print to a string instead of on a FILE. | |||
static void PrintCurrentStackTrace(FILE* out); | static void PrintCurrentStackTrace(FILE* out); | |||
static const int kNoLineNumberInfo = 0; | static const int kNoLineNumberInfo = 0; | |||
static const int kNoColumnInfo = 0; | static const int kNoColumnInfo = 0; | |||
static const int kNoScriptIdInfo = 0; | ||||
}; | }; | |||
/** | /** | |||
* Representation of a JavaScript stack trace. The information collected is a | * Representation of a JavaScript stack trace. The information collected is a | |||
* snapshot of the execution stack and the information remains valid after | * snapshot of the execution stack and the information remains valid after | |||
* execution continues. | * execution continues. | |||
*/ | */ | |||
class V8_EXPORT StackTrace { | class V8_EXPORT StackTrace { | |||
public: | public: | |||
/** | /** | |||
skipping to change at line 1166 | skipping to change at line 1167 | |||
* StackFrame when grabbing the current stack trace. | * StackFrame when grabbing the current stack trace. | |||
*/ | */ | |||
enum StackTraceOptions { | enum StackTraceOptions { | |||
kLineNumber = 1, | kLineNumber = 1, | |||
kColumnOffset = 1 << 1 | kLineNumber, | kColumnOffset = 1 << 1 | kLineNumber, | |||
kScriptName = 1 << 2, | kScriptName = 1 << 2, | |||
kFunctionName = 1 << 3, | kFunctionName = 1 << 3, | |||
kIsEval = 1 << 4, | kIsEval = 1 << 4, | |||
kIsConstructor = 1 << 5, | kIsConstructor = 1 << 5, | |||
kScriptNameOrSourceURL = 1 << 6, | kScriptNameOrSourceURL = 1 << 6, | |||
kScriptId = 1 << 7, | ||||
kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName, | kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName, | |||
kDetailed = kOverview | kIsEval | kIsConstructor | kScriptNameOrSourceU RL | kDetailed = kOverview | kIsEval | kIsConstructor | kScriptNameOrSourceU RL | |||
}; | }; | |||
/** | /** | |||
* Returns a StackFrame at a particular index. | * Returns a StackFrame at a particular index. | |||
*/ | */ | |||
Local<StackFrame> GetFrame(uint32_t index) const; | Local<StackFrame> GetFrame(uint32_t index) const; | |||
/** | /** | |||
skipping to change at line 1220 | skipping to change at line 1222 | |||
/** | /** | |||
* Returns the 1-based column offset on the line for the associated funct ion | * Returns the 1-based column offset on the line for the associated funct ion | |||
* call. | * call. | |||
* This method will return Message::kNoColumnInfo if it is unable to retr ieve | * This method will return Message::kNoColumnInfo if it is unable to retr ieve | |||
* the column number, or if kColumnOffset was not passed as an option whe n | * the column number, or if kColumnOffset was not passed as an option whe n | |||
* capturing the StackTrace. | * capturing the StackTrace. | |||
*/ | */ | |||
int GetColumn() const; | int GetColumn() const; | |||
/** | /** | |||
* Returns the id of the script for the function for this StackFrame. | ||||
* This method will return Message::kNoScriptIdInfo if it is unable to | ||||
* retrieve the script id, or if kScriptId was not passed as an option wh | ||||
en | ||||
* capturing the StackTrace. | ||||
*/ | ||||
int GetScriptId() const; | ||||
/** | ||||
* Returns the name of the resource that contains the script for the | * Returns the name of the resource that contains the script for the | |||
* function for this StackFrame. | * function for this StackFrame. | |||
*/ | */ | |||
Local<String> GetScriptName() const; | Local<String> GetScriptName() const; | |||
/** | /** | |||
* Returns the name of the resource that contains the script for the | * Returns the name of the resource that contains the script for the | |||
* function for this StackFrame or sourceURL value if the script name | * function for this StackFrame or sourceURL value if the script name | |||
* is undefined and its source ends with //# sourceURL=... string or | * is undefined and its source ends with //# sourceURL=... string or | |||
* deprecated //@ sourceURL=... string. | * deprecated //@ sourceURL=... string. | |||
skipping to change at line 5279 | skipping to change at line 5289 | |||
static const int kStringEncodingMask = 0x4; | static const int kStringEncodingMask = 0x4; | |||
static const int kExternalTwoByteRepresentationTag = 0x02; | static const int kExternalTwoByteRepresentationTag = 0x02; | |||
static const int kExternalAsciiRepresentationTag = 0x06; | static const int kExternalAsciiRepresentationTag = 0x06; | |||
static const int kIsolateEmbedderDataOffset = 1 * kApiPointerSize; | static const int kIsolateEmbedderDataOffset = 1 * kApiPointerSize; | |||
static const int kIsolateRootsOffset = 3 * kApiPointerSize; | static const int kIsolateRootsOffset = 3 * kApiPointerSize; | |||
static const int kUndefinedValueRootIndex = 5; | static const int kUndefinedValueRootIndex = 5; | |||
static const int kNullValueRootIndex = 7; | static const int kNullValueRootIndex = 7; | |||
static const int kTrueValueRootIndex = 8; | static const int kTrueValueRootIndex = 8; | |||
static const int kFalseValueRootIndex = 9; | static const int kFalseValueRootIndex = 9; | |||
static const int kEmptyStringRootIndex = 134; | static const int kEmptyStringRootIndex = 133; | |||
static const int kNodeClassIdOffset = 1 * kApiPointerSize; | static const int kNodeClassIdOffset = 1 * kApiPointerSize; | |||
static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | |||
static const int kNodeStateMask = 0xf; | static const int kNodeStateMask = 0xf; | |||
static const int kNodeStateIsWeakValue = 2; | static const int kNodeStateIsWeakValue = 2; | |||
static const int kNodeStateIsPendingValue = 3; | static const int kNodeStateIsPendingValue = 3; | |||
static const int kNodeStateIsNearDeathValue = 4; | static const int kNodeStateIsNearDeathValue = 4; | |||
static const int kNodeIsIndependentShift = 4; | static const int kNodeIsIndependentShift = 4; | |||
static const int kNodeIsPartiallyDependentShift = 5; | static const int kNodeIsPartiallyDependentShift = 5; | |||
static const int kJSObjectType = 0xb2; | static const int kJSObjectType = 0xb1; | |||
static const int kFirstNonstringType = 0x80; | static const int kFirstNonstringType = 0x80; | |||
static const int kOddballType = 0x83; | static const int kOddballType = 0x83; | |||
static const int kForeignType = 0x87; | static const int kForeignType = 0x87; | |||
static const int kUndefinedOddballKind = 5; | static const int kUndefinedOddballKind = 5; | |||
static const int kNullOddballKind = 3; | static const int kNullOddballKind = 3; | |||
static void CheckInitializedImpl(v8::Isolate* isolate); | static void CheckInitializedImpl(v8::Isolate* isolate); | |||
V8_INLINE(static void CheckInitialized(v8::Isolate* isolate)) { | V8_INLINE(static void CheckInitialized(v8::Isolate* isolate)) { | |||
#ifdef V8_ENABLE_CHECKS | #ifdef V8_ENABLE_CHECKS | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 13 lines changed or added | |||
v8config.h | v8config.h | |||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#ifndef V8CONFIG_H_ | #ifndef V8CONFIG_H_ | |||
#define V8CONFIG_H_ | #define V8CONFIG_H_ | |||
// Platform headers for feature detection below. | ||||
#if defined(__ANDROID__) | ||||
# include <sys/cdefs.h> | ||||
#elif defined(__APPLE__) | ||||
# include <TargetConditionals.h> | ||||
#elif defined(__linux__) | ||||
# include <features.h> | ||||
#endif | ||||
// This macro allows to test for the version of the GNU C library (or | ||||
// a compatible C library that masquerades as glibc). It evaluates to | ||||
// 0 if libc is not GNU libc or compatible. | ||||
// Use like: | ||||
// #if V8_GLIBC_PREREQ(2, 3) | ||||
// ... | ||||
// #endif | ||||
#if defined(__GLIBC__) && defined(__GLIBC_MINOR__) | ||||
# define V8_GLIBC_PREREQ(major, minor) \ | ||||
((__GLIBC__ * 100 + __GLIBC_MINOR__) >= ((major) * 100 + (minor))) | ||||
#else | ||||
# define V8_GLIBC_PREREQ(major, minor) 0 | ||||
#endif | ||||
// This macro allows to test for the version of the GNU C++ compiler. | ||||
// Note that this also applies to compilers that masquerade as GCC, | ||||
// for example clang and the Intel C++ compiler for Linux. | ||||
// Use like: | ||||
// #if V8_GNUC_PREREQ(4, 3, 1) | ||||
// ... | ||||
// #endif | ||||
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEV | ||||
EL__) | ||||
# define V8_GNUC_PREREQ(major, minor, patchlevel) \ | ||||
((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= \ | ||||
((major) * 10000 + (minor) * 100 + (patchlevel))) | ||||
#elif defined(__GNUC__) && defined(__GNUC_MINOR__) | ||||
# define V8_GNUC_PREREQ(major, minor, patchlevel) \ | ||||
((__GNUC__ * 10000 + __GNUC_MINOR__) >= \ | ||||
((major) * 10000 + (minor) * 100 + (patchlevel))) | ||||
#else | ||||
# define V8_GNUC_PREREQ(major, minor, patchlevel) 0 | ||||
#endif | ||||
// ------------------------------------------------------------------------ ----- | // ------------------------------------------------------------------------ ----- | |||
// Operating system detection | // Operating system detection | |||
// | // | |||
// V8_OS_ANDROID - Android | // V8_OS_ANDROID - Android | |||
// V8_OS_BSD - BSDish (Mac OS X, Net/Free/Open/DragonFlyBSD) | // V8_OS_BSD - BSDish (Mac OS X, Net/Free/Open/DragonFlyBSD) | |||
// V8_OS_CYGWIN - Cygwin | // V8_OS_CYGWIN - Cygwin | |||
// V8_OS_DRAGONFLYBSD - DragonFlyBSD | // V8_OS_DRAGONFLYBSD - DragonFlyBSD | |||
// V8_OS_FREEBSD - FreeBSD | // V8_OS_FREEBSD - FreeBSD | |||
// V8_OS_LINUX - Linux | // V8_OS_LINUX - Linux | |||
// V8_OS_MACOSX - Mac OS X | // V8_OS_MACOSX - Mac OS X | |||
skipping to change at line 89 | skipping to change at line 131 | |||
# define V8_OS_POSIX 1 | # define V8_OS_POSIX 1 | |||
#elif defined(__OpenBSD__) | #elif defined(__OpenBSD__) | |||
# define V8_OS_BSD 1 | # define V8_OS_BSD 1 | |||
# define V8_OS_OPENBSD 1 | # define V8_OS_OPENBSD 1 | |||
# define V8_OS_POSIX 1 | # define V8_OS_POSIX 1 | |||
#elif defined(_WIN32) | #elif defined(_WIN32) | |||
# define V8_OS_WIN 1 | # define V8_OS_WIN 1 | |||
#endif | #endif | |||
// ------------------------------------------------------------------------ ----- | // ------------------------------------------------------------------------ ----- | |||
// C library detection | ||||
// | ||||
// V8_LIBC_BIONIC - Bionic libc | ||||
// V8_LIBC_BSD - BSD libc derivate | ||||
// V8_LIBC_GLIBC - GNU C library | ||||
// V8_LIBC_UCLIBC - uClibc | ||||
// | ||||
// Note that testing for libc must be done using #if not #ifdef. For exampl | ||||
e, | ||||
// to test for the GNU C library, use: | ||||
// #if V8_LIBC_GLIBC | ||||
// ... | ||||
// #endif | ||||
#if defined(__BIONIC__) | ||||
# define V8_LIBC_BIONIC 1 | ||||
# define V8_LIBC_BSD 1 | ||||
#elif defined(__UCLIBC__) | ||||
# define V8_LIBC_UCLIBC 1 | ||||
#elif defined(__GLIBC__) || defined(__GNU_LIBRARY__) | ||||
# define V8_LIBC_GLIBC 1 | ||||
#else | ||||
# define V8_LIBC_BSD V8_OS_BSD | ||||
#endif | ||||
// ------------------------------------------------------------------------ | ||||
----- | ||||
// Compiler detection | // Compiler detection | |||
// | // | |||
// V8_CC_CLANG - Clang | // V8_CC_CLANG - Clang | |||
// V8_CC_GNU - GNU C++ | // V8_CC_GNU - GNU C++ | |||
// V8_CC_INTEL - Intel C++ | // V8_CC_INTEL - Intel C++ | |||
// V8_CC_MINGW - Minimalist GNU for Windows | // V8_CC_MINGW - Minimalist GNU for Windows | |||
// V8_CC_MINGW32 - Minimalist GNU for Windows (mingw32) | // V8_CC_MINGW32 - Minimalist GNU for Windows (mingw32) | |||
// V8_CC_MINGW64 - Minimalist GNU for Windows (mingw-w64) | // V8_CC_MINGW64 - Minimalist GNU for Windows (mingw-w64) | |||
// V8_CC_MSVC - Microsoft Visual C/C++ | // V8_CC_MSVC - Microsoft Visual C/C++ | |||
// | // | |||
skipping to change at line 136 | skipping to change at line 203 | |||
// V8_HAS_SEALED - MSVC style sealed marker supporte d | // V8_HAS_SEALED - MSVC style sealed marker supporte d | |||
// | // | |||
// Note that testing for compilers and/or features must be done using #if | // Note that testing for compilers and/or features must be done using #if | |||
// not #ifdef. For example, to test for Intel C++ Compiler, use: | // not #ifdef. For example, to test for Intel C++ Compiler, use: | |||
// #if V8_CC_INTEL | // #if V8_CC_INTEL | |||
// ... | // ... | |||
// #endif | // #endif | |||
#if defined(__clang__) | #if defined(__clang__) | |||
// Don't treat clang as GCC. | ||||
# define V8_GNUC_PREREQ(major, minor, patchlevel) 0 | ||||
# define V8_CC_CLANG 1 | # define V8_CC_CLANG 1 | |||
// Clang defines __alignof__ as alias for __alignof | // Clang defines __alignof__ as alias for __alignof | |||
# define V8_HAS___ALIGNOF 1 | # define V8_HAS___ALIGNOF 1 | |||
# define V8_HAS___ALIGNOF__ V8_HAS___ALIGNOF | # define V8_HAS___ALIGNOF__ V8_HAS___ALIGNOF | |||
# define V8_HAS_ATTRIBUTE_ALIGNED (__has_attribute(aligned)) | # define V8_HAS_ATTRIBUTE_ALIGNED (__has_attribute(aligned)) | |||
# define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline)) | # define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline)) | |||
# define V8_HAS_ATTRIBUTE_DEPRECATED (__has_attribute(deprecated)) | # define V8_HAS_ATTRIBUTE_DEPRECATED (__has_attribute(deprecated)) | |||
# define V8_HAS_ATTRIBUTE_NOINLINE (__has_attribute(noinline)) | # define V8_HAS_ATTRIBUTE_NOINLINE (__has_attribute(noinline)) | |||
skipping to change at line 163 | skipping to change at line 227 | |||
# define V8_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect)) | # define V8_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect)) | |||
# define V8_HAS_CXX11_ALIGNAS (__has_feature(cxx_alignas)) | # define V8_HAS_CXX11_ALIGNAS (__has_feature(cxx_alignas)) | |||
# define V8_HAS_CXX11_STATIC_ASSERT (__has_feature(cxx_static_assert)) | # define V8_HAS_CXX11_STATIC_ASSERT (__has_feature(cxx_static_assert)) | |||
# define V8_HAS_CXX11_DELETE (__has_feature(cxx_deleted_functions)) | # define V8_HAS_CXX11_DELETE (__has_feature(cxx_deleted_functions)) | |||
# define V8_HAS_CXX11_FINAL (__has_feature(cxx_override_control)) | # define V8_HAS_CXX11_FINAL (__has_feature(cxx_override_control)) | |||
# define V8_HAS_CXX11_OVERRIDE (__has_feature(cxx_override_control)) | # define V8_HAS_CXX11_OVERRIDE (__has_feature(cxx_override_control)) | |||
#elif defined(__GNUC__) | #elif defined(__GNUC__) | |||
# define V8_GNUC_PREREQ(major, minor, patchlevel) \ | ||||
((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= \ | ||||
((major) * 10000 + (minor) * 100 + (patchlevel))) | ||||
# define V8_CC_GNU 1 | # define V8_CC_GNU 1 | |||
// Intel C++ also masquerades as GCC 3.2.0 | // Intel C++ also masquerades as GCC 3.2.0 | |||
# define V8_CC_INTEL (defined(__INTEL_COMPILER)) | # define V8_CC_INTEL (defined(__INTEL_COMPILER)) | |||
# define V8_CC_MINGW32 (defined(__MINGW32__)) | # define V8_CC_MINGW32 (defined(__MINGW32__)) | |||
# define V8_CC_MINGW64 (defined(__MINGW64__)) | # define V8_CC_MINGW64 (defined(__MINGW64__)) | |||
# define V8_CC_MINGW (V8_CC_MINGW32 || V8_CC_MINGW64) | # define V8_CC_MINGW (V8_CC_MINGW32 || V8_CC_MINGW64) | |||
# define V8_HAS___ALIGNOF__ (V8_GNUC_PREREQ(4, 3, 0)) | # define V8_HAS___ALIGNOF__ (V8_GNUC_PREREQ(4, 3, 0)) | |||
# define V8_HAS_ATTRIBUTE_ALIGNED (V8_GNUC_PREREQ(2, 95, 0)) | # define V8_HAS_ATTRIBUTE_ALIGNED (V8_GNUC_PREREQ(2, 95, 0)) | |||
skipping to change at line 209 | skipping to change at line 269 | |||
# define V8_HAS_CXX11_DELETE (V8_GNUC_PREREQ(4, 4, 0)) | # define V8_HAS_CXX11_DELETE (V8_GNUC_PREREQ(4, 4, 0)) | |||
# define V8_HAS_CXX11_OVERRIDE (V8_GNUC_PREREQ(4, 7, 0)) | # define V8_HAS_CXX11_OVERRIDE (V8_GNUC_PREREQ(4, 7, 0)) | |||
# define V8_HAS_CXX11_FINAL (V8_GNUC_PREREQ(4, 7, 0)) | # define V8_HAS_CXX11_FINAL (V8_GNUC_PREREQ(4, 7, 0)) | |||
# else | # else | |||
// '__final' is a non-C++11 GCC synonym for 'final', per GCC r176655. | // '__final' is a non-C++11 GCC synonym for 'final', per GCC r176655. | |||
# define V8_HAS___FINAL (V8_GNUC_PREREQ(4, 7, 0)) | # define V8_HAS___FINAL (V8_GNUC_PREREQ(4, 7, 0)) | |||
# endif | # endif | |||
#elif defined(_MSC_VER) | #elif defined(_MSC_VER) | |||
# define V8_GNUC_PREREQ(major, minor, patchlevel) 0 | ||||
# define V8_CC_MSVC 1 | # define V8_CC_MSVC 1 | |||
# define V8_HAS___ALIGNOF 1 | # define V8_HAS___ALIGNOF 1 | |||
// Override control was added with Visual Studio 2005, but | // Override control was added with Visual Studio 2005, but | |||
// Visual Studio 2010 and earlier spell "final" as "sealed". | // Visual Studio 2010 and earlier spell "final" as "sealed". | |||
# define V8_HAS_CXX11_FINAL (_MSC_VER >= 1700) | # define V8_HAS_CXX11_FINAL (_MSC_VER >= 1700) | |||
# define V8_HAS_CXX11_OVERRIDE (_MSC_VER >= 1400) | # define V8_HAS_CXX11_OVERRIDE (_MSC_VER >= 1400) | |||
# define V8_HAS_SEALED (_MSC_VER >= 1400) | # define V8_HAS_SEALED (_MSC_VER >= 1400) | |||
End of changes. 5 change blocks. | ||||
9 lines changed or deleted | 70 lines changed or added | |||