Permalink
Browse files

Version 3.18.5

Allowed setting debugger breakpoints on CompareNilICs (issue 2660)

Fixed beyond-heap load on x64 Crankshafted StringCharFromCode (Chromium issue 235311)

Change 'Parse error' to three more informative messages. (Chromium issue 2636)

Performance and stability improvements on all platforms.

git-svn-id: https://v8.googlecode.com/svn/trunk@14498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
  • Loading branch information...
1 parent 3659d8b commit 8f4d565137db4679e3db7d35e67306bfd7db49e9 danno@chromium.org committed Apr 30, 2013
Showing with 3,503 additions and 999 deletions.
  1. +13 −0 ChangeLog
  2. +237 −1 include/v8.h
  3. +157 −1 src/api.cc
  4. +52 −0 src/api.h
  5. +12 −9 src/arguments.h
  6. +1 −0 src/arm/code-stubs-arm.cc
  7. +9 −0 src/arm/debug-arm.cc
  8. +20 −7 src/arm/lithium-arm.cc
  9. +6 −0 src/arm/lithium-arm.h
  10. +74 −46 src/arm/lithium-codegen-arm.cc
  11. +2 −0 src/arm/lithium-codegen-arm.h
  12. +12 −0 src/arm/macro-assembler-arm.cc
  13. +4 −0 src/arm/macro-assembler-arm.h
  14. +70 −66 src/arm/simulator-arm.cc
  15. +2 −4 src/arm/simulator-arm.h
  16. +97 −52 src/arm/stub-cache-arm.cc
  17. +1 −1 src/atomicops_internals_x86_gcc.h
  18. +39 −22 src/bootstrapper.cc
  19. +40 −0 src/builtins-decls.h
  20. +26 −13 src/builtins.cc
  21. +2 −2 src/builtins.h
  22. +8 −4 src/code-stubs-hydrogen.cc
  23. +16 −0 src/contexts.h
  24. +29 −23 src/d8.cc
  25. +3 −0 src/debug.cc
  26. +1 −0 src/debug.h
  27. +48 −0 src/factory.cc
  28. +2 −0 src/factory.h
  29. +4 −1 src/flag-definitions.h
  30. +27 −0 src/frames-inl.h
  31. +0 −1 src/frames.cc
  32. +10 −3 src/frames.h
  33. +4 −1 src/heap.cc
  34. +26 −20 src/hydrogen-instructions.cc
  35. +39 −57 src/hydrogen-instructions.h
  36. +73 −30 src/hydrogen.cc
  37. +1 −0 src/ia32/code-stubs-ia32.cc
  38. +9 −0 src/ia32/debug-ia32.cc
  39. +85 −28 src/ia32/lithium-codegen-ia32.cc
  40. +2 −0 src/ia32/lithium-codegen-ia32.h
  41. +27 −30 src/ia32/lithium-ia32.cc
  42. +10 −2 src/ia32/lithium-ia32.h
  43. +12 −0 src/ia32/macro-assembler-ia32.cc
  44. +4 −0 src/ia32/macro-assembler-ia32.h
  45. +80 −35 src/ia32/stub-cache-ia32.cc
  46. +82 −6 src/ic.cc
  47. +24 −3 src/json-parser.h
  48. +12 −11 src/lithium-allocator.cc
  49. +8 −8 src/lithium-allocator.h
  50. +1 −1 src/macros.py
  51. +3 −1 src/messages.js
  52. +1 −0 src/mips/code-stubs-mips.cc
  53. +62 −11 src/mips/lithium-codegen-mips.cc
  54. +2 −0 src/mips/lithium-codegen-mips.h
  55. +20 −7 src/mips/lithium-mips.cc
  56. +6 −0 src/mips/lithium-mips.h
  57. +12 −0 src/mips/macro-assembler-mips.cc
  58. +4 −0 src/mips/macro-assembler-mips.h
  59. +96 −51 src/mips/stub-cache-mips.cc
  60. +15 −16 src/mksnapshot.cc
  61. +59 −22 src/objects-inl.h
  62. +683 −110 src/objects.cc
  63. +69 −7 src/objects.h
  64. +2 −2 src/parser.cc
  65. +99 −2 src/property-details.h
  66. +25 −10 src/property.h
  67. +59 −68 src/runtime.cc
  68. +2 −1 src/sampler.cc
  69. +2 −1 src/scopes.cc
  70. +21 −4 src/stub-cache.cc
  71. +1 −0 src/stub-cache.h
  72. +1 −0 src/transitions.cc
  73. +54 −41 src/typedarray.js
  74. +1 −1 src/v8natives.js
  75. +2 −2 src/version.cc
  76. +10 −8 src/x64/code-stubs-x64.cc
  77. +9 −0 src/x64/debug-x64.cc
  78. +69 −27 src/x64/lithium-codegen-x64.cc
  79. +2 −0 src/x64/lithium-codegen-x64.h
  80. +26 −26 src/x64/lithium-x64.cc
  81. +10 −2 src/x64/lithium-x64.h
  82. +13 −0 src/x64/macro-assembler-x64.cc
  83. +4 −0 src/x64/macro-assembler-x64.h
  84. +69 −24 src/x64/stub-cache-x64.cc
  85. +3 −0 test/cctest/cctest.status
  86. +146 −45 test/cctest/test-api.cc
  87. +9 −0 test/cctest/test-debug.cc
  88. +31 −0 test/message/isvar.js
  89. +4 −0 test/message/isvar.out
  90. +29 −0 test/message/paren_in_arg_string.js
  91. +6 −0 test/message/paren_in_arg_string.out
  92. +32 −0 test/message/single-function-literal.js
  93. +5 −0 test/message/single-function-literal.out
  94. +1 −1 test/mjsunit/elements-transition-hoisting.js
  95. +27 −1 test/mjsunit/harmony/generators-iteration.js
  96. +41 −20 test/mjsunit/harmony/typedarrays.js
  97. +32 −0 test/mjsunit/regress/regress-235311.js
  98. +101 −0 test/mjsunit/track-fields.js
View
@@ -1,3 +1,16 @@
+2013-04-30: Version 3.18.5
+
+ Allowed setting debugger breakpoints on CompareNilICs (issue 2660)
+
+ Fixed beyond-heap load on x64 Crankshafted StringCharFromCode
+ (Chromium issue 235311)
+
+ Change 'Parse error' to three more informative messages.
+ (Chromium issue 2636)
+
+ Performance and stability improvements on all platforms.
+
+
2013-04-26: Version 3.18.4
Added a preliminary API for ES6 ArrayBuffers
View
@@ -2047,6 +2047,170 @@ class V8EXPORT ArrayBuffer : public Object {
/**
+ * A base class for an instance of TypedArray series of constructors
+ * (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT TypedArray : public Object {
+ public:
+ /**
+ * Returns underlying ArrayBuffer.
+ */
+ Local<ArrayBuffer> Buffer();
+ /**
+ * Byte offset in |Buffer|
+ */
+ size_t ByteOffset();
+ /**
+ * Numbe of elements in this typed array.
+ */
+ size_t Length();
+ /**
+ * Size of typed array in bytes (e.g. for Int16Array, 2*|Length|).
+ */
+ size_t ByteLength();
+ /**
+ * Base address of typed array.
+ */
+ void* BaseAddress();
+
+ V8_INLINE(static TypedArray* Cast(Value* obj));
+
+ private:
+ TypedArray();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Uint8Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Uint8Array : public TypedArray {
+ public:
+ static Local<Uint8Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Uint8Array* Cast(Value* obj));
+
+ private:
+ Uint8Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Int8Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Int8Array : public TypedArray {
+ public:
+ static Local<Int8Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Int8Array* Cast(Value* obj));
+
+ private:
+ Int8Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Uint16Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Uint16Array : public TypedArray {
+ public:
+ static Local<Uint16Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Uint16Array* Cast(Value* obj));
+
+ private:
+ Uint16Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Int16Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Int16Array : public TypedArray {
+ public:
+ static Local<Int16Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Int16Array* Cast(Value* obj));
+
+ private:
+ Int16Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Uint32Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Uint32Array : public TypedArray {
+ public:
+ static Local<Uint32Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Uint32Array* Cast(Value* obj));
+
+ private:
+ Uint32Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Int32Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Int32Array : public TypedArray {
+ public:
+ static Local<Int32Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Int32Array* Cast(Value* obj));
+
+ private:
+ Int32Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Float32Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Float32Array : public TypedArray {
+ public:
+ static Local<Float32Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Float32Array* Cast(Value* obj));
+
+ private:
+ Float32Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
+ * An instance of Float64Array constructor (ES6 draft 15.13.6).
+ * This API is experimental and may change significantly.
+ */
+class V8EXPORT Float64Array : public TypedArray {
+ public:
+ static Local<Float64Array> New(Handle<ArrayBuffer> array_buffer,
+ size_t byte_offset, size_t length);
+ V8_INLINE(static Float64Array* Cast(Value* obj));
+
+ private:
+ Float64Array();
+ static void CheckCast(Value* obj);
+};
+
+
+/**
* An instance of the built-in Date constructor (ECMA-262, 15.9).
*/
class V8EXPORT Date : public Object {
@@ -4543,7 +4707,7 @@ class Internals {
static const int kJSObjectHeaderSize = 3 * kApiPointerSize;
static const int kFixedArrayHeaderSize = 2 * kApiPointerSize;
static const int kContextHeaderSize = 2 * kApiPointerSize;
- static const int kContextEmbedderDataIndex = 56;
+ static const int kContextEmbedderDataIndex = 64;
static const int kFullStringRepresentationMask = 0x07;
static const int kStringEncodingMask = 0x4;
static const int kExternalTwoByteRepresentationTag = 0x02;
@@ -5224,6 +5388,78 @@ ArrayBuffer* ArrayBuffer::Cast(v8::Value* value) {
}
+TypedArray* TypedArray::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<TypedArray*>(value);
+}
+
+
+Uint8Array* Uint8Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Uint8Array*>(value);
+}
+
+
+Int8Array* Int8Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Int8Array*>(value);
+}
+
+
+Uint16Array* Uint16Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Uint16Array*>(value);
+}
+
+
+Int16Array* Int16Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Int16Array*>(value);
+}
+
+
+Uint32Array* Uint32Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Uint32Array*>(value);
+}
+
+
+Int32Array* Int32Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Int32Array*>(value);
+}
+
+
+Float32Array* Float32Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Float32Array*>(value);
+}
+
+
+Float64Array* Float64Array::Cast(v8::Value* value) {
+#ifdef V8_ENABLE_CHECKS
+ CheckCast(value);
+#endif
+ return static_cast<Float64Array*>(value);
+}
+
+
Function* Function::Cast(v8::Value* value) {
#ifdef V8_ENABLE_CHECKS
CheckCast(value);
Oops, something went wrong.

0 comments on commit 8f4d565

Please sign in to comment.