Permalink
Browse files

upgrade v8 to 1.2.8

  • Loading branch information...
1 parent 27b268b commit 84f9178e664e7a779cff10656848f89eb6795a73 @ry ry committed Jun 17, 2009
Showing with 6,736 additions and 2,046 deletions.
  1. +14 −0 deps/v8/ChangeLog
  2. +2 −14 deps/v8/include/v8.h
  3. +2 −1 deps/v8/src/SConscript
  4. +4 −1 deps/v8/src/api.cc
  5. +5 −15 deps/v8/src/arm/builtins-arm.cc
  6. +10 −0 deps/v8/src/arm/codegen-arm-inl.h
  7. +712 −225 deps/v8/src/arm/codegen-arm.cc
  8. +9 −0 deps/v8/src/arm/codegen-arm.h
  9. +11 −9 deps/v8/src/arm/constants-arm.h
  10. +3 −1 deps/v8/src/arm/cpu-arm.cc
  11. +3 −15 deps/v8/src/arm/disasm-arm.cc
  12. +12 −230 deps/v8/src/arm/frames-arm.h
  13. +13 −17 deps/v8/src/arm/ic-arm.cc
  14. +2 −2 deps/v8/src/arm/jump-target-arm.cc
  15. +84 −42 deps/v8/src/arm/macro-assembler-arm.cc
  16. +33 −2 deps/v8/src/arm/macro-assembler-arm.h
  17. +128 −53 deps/v8/src/arm/simulator-arm.cc
  18. +9 −1 deps/v8/src/arm/simulator-arm.h
  19. +4 −12 deps/v8/src/arm/stub-cache-arm.cc
  20. +3 −5 deps/v8/src/arm/virtual-frame-arm.cc
  21. +63 −0 deps/v8/src/array.js
  22. +23 −8 deps/v8/src/assembler.cc
  23. +34 −8 deps/v8/src/assembler.h
  24. +3 −0 deps/v8/src/bootstrapper.cc
  25. +2 −1 deps/v8/src/builtins.cc
  26. +1 −1 deps/v8/src/code-stubs.cc
  27. +2 −0 deps/v8/src/code-stubs.h
  28. +7 −4 deps/v8/src/codegen.cc
  29. +16 −2 deps/v8/src/codegen.h
  30. +17 −11 deps/v8/src/compiler.cc
  31. +1 −1 deps/v8/src/d8-debug.h
  32. +10 −10 deps/v8/src/d8.cc
  33. +115 −10 deps/v8/src/d8.js
  34. +68 −9 deps/v8/src/date-delay.js
  35. +66 −1 deps/v8/src/debug-delay.js
  36. +14 −0 deps/v8/src/debug.cc
  37. +2 −0 deps/v8/src/flag-definitions.h
  38. +4 −21 deps/v8/src/frames-inl.h
  39. +8 −6 deps/v8/src/frames.cc
  40. +2 −6 deps/v8/src/frames.h
  41. +22 −13 deps/v8/src/heap.cc
  42. +3 −2 deps/v8/src/heap.h
  43. +18 −1 deps/v8/src/ia32/assembler-ia32.cc
  44. +2 −0 deps/v8/src/ia32/assembler-ia32.h
  45. +10 −0 deps/v8/src/ia32/codegen-ia32-inl.h
  46. +508 −208 deps/v8/src/ia32/codegen-ia32.cc
  47. +9 −0 deps/v8/src/ia32/codegen-ia32.h
  48. +8 −165 deps/v8/src/ia32/frames-ia32.h
  49. +26 −1 deps/v8/src/ia32/ic-ia32.cc
  50. +3 −3 deps/v8/src/ia32/jump-target-ia32.cc
  51. +10 −14 deps/v8/src/ia32/macro-assembler-ia32.cc
  52. +3 −4 deps/v8/src/ia32/macro-assembler-ia32.h
  53. +5 −15 deps/v8/src/ia32/virtual-frame-ia32.cc
  54. +2 −5 deps/v8/src/ia32/virtual-frame-ia32.h
  55. +22 −13 deps/v8/src/ic.cc
  56. +11 −0 deps/v8/src/ic.h
  57. +11 −162 deps/v8/src/jump-target.cc
  58. +7 −44 deps/v8/src/jump-target.h
  59. +184 −3 deps/v8/src/log-utils.cc
  60. +66 −1 deps/v8/src/log-utils.h
  61. +134 −37 deps/v8/src/log.cc
  62. +52 −5 deps/v8/src/log.h
  63. +1 −0 deps/v8/src/macros.py
  64. +72 −20 deps/v8/src/math.js
  65. +41 −22 deps/v8/src/messages.js
  66. +156 −18 deps/v8/src/mirror-delay.js
  67. +30 −30 deps/v8/src/objects.cc
  68. +26 −7 deps/v8/src/objects.h
  69. +15 −0 deps/v8/src/parser.cc
  70. +1 −0 deps/v8/src/regexp-macro-assembler-irregexp.cc
  71. +426 −62 deps/v8/src/runtime.cc
  72. +3 −1 deps/v8/src/runtime.h
  73. +82 −32 deps/v8/src/runtime.js
  74. +21 −11 deps/v8/src/serialize.cc
  75. +33 −27 deps/v8/src/stub-cache.cc
  76. +5 −0 deps/v8/src/utils.h
  77. +2 −0 deps/v8/src/v8-counters.h
  78. +35 −2 deps/v8/src/v8.cc
  79. +9 −4 deps/v8/src/v8.h
  80. +2 −2 deps/v8/src/version.cc
  81. +3 −25 deps/v8/src/x64/assembler-x64-inl.h
  82. +182 −132 deps/v8/src/x64/assembler-x64.cc
  83. +65 −64 deps/v8/src/x64/assembler-x64.h
  84. +235 −5 deps/v8/src/x64/builtins-x64.cc
  85. +11 −0 deps/v8/src/x64/codegen-x64-inl.h
  86. +458 −8 deps/v8/src/x64/codegen-x64.cc
  87. +17 −0 deps/v8/src/x64/codegen-x64.h
  88. +45 −0 deps/v8/src/x64/frames-x64.cc
  89. +31 −27 deps/v8/src/x64/frames-x64.h
  90. +13 −0 deps/v8/src/x64/ic-x64.cc
  91. +579 −20 deps/v8/src/x64/macro-assembler-x64.cc
  92. +24 −6 deps/v8/src/x64/macro-assembler-x64.h
  93. +27 −10 deps/v8/src/x64/register-allocator-x64-inl.h
  94. +63 −0 deps/v8/src/x64/register-allocator-x64.cc
  95. +1 −1 deps/v8/src/x64/register-allocator-x64.h
  96. +1 −0 deps/v8/src/x64/simulator-x64.h
  97. +169 −0 deps/v8/src/x64/virtual-frame-x64.cc
  98. +2 −2 deps/v8/src/x64/virtual-frame-x64.h
  99. +74 −1 deps/v8/test/cctest/test-api.cc
  100. +8 −7 deps/v8/test/cctest/test-assembler-x64.cc
  101. +106 −34 deps/v8/test/cctest/test-debug.cc
  102. +180 −3 deps/v8/test/cctest/test-log-utils.cc
  103. +29 −9 deps/v8/test/mjsunit/array-sort.js
  104. +1 −1 deps/v8/test/mjsunit/big-object-literal.js
  105. +660 −0 deps/v8/test/mjsunit/debug-scopes.js
  106. +81 −11 deps/v8/test/mjsunit/debug-sourceinfo.js
  107. +45 −0 deps/v8/test/mjsunit/sin-cos.js
  108. +7 −0 deps/v8/test/mjsunit/smi-ops.js
  109. +22 −2 deps/v8/tools/tickprocessor.js
View
@@ -1,3 +1,17 @@
+2009-06-16: Version 1.2.8
+
+ Optimized math on ARM platforms.
+
+ Fixed two crash bugs in the handling of getters and setters.
+
+ Improved the debugger support by adding scope chain information.
+
+ Improved the profiler support by compressing log data transmitted
+ to clients.
+
+ Improved overall performance.
+
+
2009-06-08: Version 1.2.7
Improved debugger and profiler support.
View
@@ -212,9 +212,9 @@ template <class T> class V8EXPORT_INLINE Handle {
*/
bool IsEmpty() const { return val_ == 0; }
- T* operator->() const;
+ T* operator->() const { return val_; }
- T* operator*() const;
+ T* operator*() const { return val_; }
/**
* Sets the handle to be empty. IsEmpty() will then return true.
@@ -2509,18 +2509,6 @@ void Persistent<T>::ClearWeak() {
V8::ClearWeak(reinterpret_cast<void**>(**this));
}
-template <class T>
-T* Handle<T>::operator->() const {
- return val_;
-}
-
-
-template <class T>
-T* Handle<T>::operator*() const {
- return val_;
-}
-
-
Local<Value> Arguments::operator[](int i) const {
if (i < 0 || length_ <= i) return Local<Value>(*Undefined());
return Local<Value>(reinterpret_cast<Value*>(values_ - i));
View
@@ -77,7 +77,8 @@ SOURCES = {
'x64/debug-x64.cc', 'x64/frames-x64.cc', 'x64/ic-x64.cc',
'x64/jump-target-x64.cc', 'x64/macro-assembler-x64.cc',
# 'x64/regexp-macro-assembler-x64.cc',
- 'x64/stub-cache-x64.cc'
+ 'x64/register-allocator-x64.cc',
+ 'x64/stub-cache-x64.cc', 'x64/virtual-frame-x64.cc'
],
'simulator:arm': ['arm/simulator-arm.cc'],
'os:freebsd': ['platform-freebsd.cc', 'platform-posix.cc'],
View
@@ -2124,7 +2124,9 @@ int v8::Object::GetIdentityHash() {
} else {
int attempts = 0;
do {
- hash_value = random() & i::Smi::kMaxValue; // Limit range to fit a smi.
+ // Generate a random 32-bit hash value but limit range to fit
+ // within a smi.
+ hash_value = i::V8::Random() & i::Smi::kMaxValue;
attempts++;
} while (hash_value == 0 && attempts < 30);
hash_value = hash_value != 0 ? hash_value : 1; // never return 0
@@ -3382,6 +3384,7 @@ void Debug::SetMessageHandler(v8::Debug::MessageHandler handler,
void Debug::SetMessageHandler2(v8::Debug::MessageHandler2 handler) {
EnsureInitialized("v8::Debug::SetMessageHandler");
ENTER_V8;
+ HandleScope scope;
i::Debugger::SetMessageHandler(handler);
}
@@ -64,9 +64,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
__ tst(r1, Operand(kSmiTagMask));
__ b(eq, &non_function_call);
// Check that the function is a JSFunction.
- __ ldr(r2, FieldMemOperand(r1, HeapObject::kMapOffset));
- __ ldrb(r2, FieldMemOperand(r2, Map::kInstanceTypeOffset));
- __ cmp(r2, Operand(JS_FUNCTION_TYPE));
+ __ CompareObjectType(r1, r2, r2, JS_FUNCTION_TYPE);
__ b(ne, &non_function_call);
// Enter a construct frame.
@@ -159,9 +157,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
// If the type of the result (stored in its map) is less than
// FIRST_JS_OBJECT_TYPE, it is not an object in the ECMA sense.
- __ ldr(r3, FieldMemOperand(r0, HeapObject::kMapOffset));
- __ ldrb(r3, FieldMemOperand(r3, Map::kInstanceTypeOffset));
- __ cmp(r3, Operand(FIRST_JS_OBJECT_TYPE));
+ __ CompareObjectType(r0, r3, r3, FIRST_JS_OBJECT_TYPE);
__ b(ge, &exit);
// Throw away the result of the constructor invocation and use the
@@ -290,9 +286,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
__ ldr(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2));
__ tst(r1, Operand(kSmiTagMask));
__ b(eq, &non_function);
- __ ldr(r2, FieldMemOperand(r1, HeapObject::kMapOffset));
- __ ldrb(r2, FieldMemOperand(r2, Map::kInstanceTypeOffset));
- __ cmp(r2, Operand(JS_FUNCTION_TYPE));
+ __ CompareObjectType(r1, r2, r2, JS_FUNCTION_TYPE);
__ b(eq, &function);
// Non-function called: Clear the function to force exception.
@@ -328,9 +322,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
__ cmp(r2, r3);
__ b(eq, &use_global_receiver);
- __ ldr(r3, FieldMemOperand(r2, HeapObject::kMapOffset));
- __ ldrb(r3, FieldMemOperand(r3, Map::kInstanceTypeOffset));
- __ cmp(r3, Operand(FIRST_JS_OBJECT_TYPE));
+ __ CompareObjectType(r2, r3, r3, FIRST_JS_OBJECT_TYPE);
__ b(lt, &call_to_object);
__ cmp(r3, Operand(LAST_JS_OBJECT_TYPE));
__ b(le, &done);
@@ -501,9 +493,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
// Check if the receiver is already a JavaScript object.
// r0: receiver
- __ ldr(r1, FieldMemOperand(r0, HeapObject::kMapOffset));
- __ ldrb(r1, FieldMemOperand(r1, Map::kInstanceTypeOffset));
- __ cmp(r1, Operand(FIRST_JS_OBJECT_TYPE));
+ __ CompareObjectType(r0, r1, r1, FIRST_JS_OBJECT_TYPE);
__ b(lt, &call_to_object);
__ cmp(r1, Operand(LAST_JS_OBJECT_TYPE));
__ b(le, &push_receiver);
@@ -39,6 +39,16 @@ namespace internal {
void DeferredCode::Jump() { __ jmp(&entry_label_); }
void DeferredCode::Branch(Condition cc) { __ b(cc, &entry_label_); }
+void CodeGenerator::GenerateMathSin(ZoneList<Expression*>* args) {
+ GenerateFastMathOp(SIN, args);
+}
+
+
+void CodeGenerator::GenerateMathCos(ZoneList<Expression*>* args) {
+ GenerateFastMathOp(COS, args);
+}
+
+
#undef __
} } // namespace v8::internal
Oops, something went wrong.

0 comments on commit 84f9178

Please sign in to comment.