diff options
author | Trevor Norris <trev.norris@gmail.com> | 2015-02-10 17:09:26 -0700 |
---|---|---|
committer | Julien Gilli <julien.gilli@joyent.com> | 2015-04-29 14:25:48 -0700 |
commit | 32166a90cf126e4738b3ac81496ba1a46a23281d (patch) | |
tree | b10734708ad067b457df4593e432e737e5f39651 | |
parent | 0e392f3b68fecf8d45032a8f427e22f7f1cb25cf (diff) | |
download | node-new-32166a90cf126e4738b3ac81496ba1a46a23281d.tar.gz |
deps: update V8 to 3.28.71.19
The 3.28.73 update was technically unstable code. This reverts the code
to the latest 3.28 stable release.
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: https://github.com/joyent/node/pull/18206
94 files changed, 3530 insertions, 2018 deletions
diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 0b2872a7c2..98c9b7c548 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,8 +1,3 @@ -2014-08-13: Version 3.28.73 - - Performance and stability improvements on all platforms. - - 2014-08-12: Version 3.28.71 ToNumber(Symbol) should throw TypeError (issue 3499). diff --git a/deps/v8/build/features.gypi b/deps/v8/build/features.gypi index 7ce66e4c98..8201ea9eaa 100644 --- a/deps/v8/build/features.gypi +++ b/deps/v8/build/features.gypi @@ -115,7 +115,7 @@ 'Release': { 'variables': { 'v8_enable_extra_checks%': 0, - 'v8_enable_handle_zapping%': 1, + 'v8_enable_handle_zapping%': 0, }, 'conditions': [ ['v8_enable_extra_checks==1', { diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index f3fb966de0..ef0bda63f4 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -4187,17 +4187,6 @@ class V8_EXPORT Isolate { static Isolate* GetCurrent(); /** - * Custom callback used by embedders to help V8 determine if it should abort - * when it throws and no internal handler can catch the exception. - * If FLAG_abort_on_uncaught_exception is true, then V8 will abort if either: - * - no custom callback is set. - * - the custom callback set returns true. - * Otherwise it won't abort. - */ - typedef bool (*abort_on_uncaught_exception_t)(); - void SetAbortOnUncaughtException(abort_on_uncaught_exception_t callback); - - /** * Methods below this point require holding a lock (using Locker) in * a multi-threaded environment. */ diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index b04a3e62de..3d9e9d8310 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -5543,6 +5543,11 @@ bool v8::String::CanMakeExternal() { i::Handle<i::String> obj = Utils::OpenHandle(this); i::Isolate* isolate = obj->GetIsolate(); + // TODO(yangguo): Externalizing sliced/cons strings allocates. + // This rule can be removed when all code that can + // trigger an access check is handlified and therefore GC safe. + if (isolate->heap()->old_pointer_space()->Contains(*obj)) return false; + if (isolate->string_tracker()->IsFreshUnusedString(obj)) return false; int size = obj->Size(); // Byte size of the original string. if (size < i::ExternalString::kShortSize) return false; @@ -6731,6 +6736,7 @@ void v8::Isolate::LowMemoryNotification() { } } + int v8::Isolate::ContextDisposedNotification() { i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); return isolate->heap()->NotifyContextDisposed(); diff --git a/deps/v8/src/array-iterator.js b/deps/v8/src/array-iterator.js index f04d6c974a..cd5cd835bc 100644 --- a/deps/v8/src/array-iterator.js +++ b/deps/v8/src/array-iterator.js @@ -120,8 +120,8 @@ function ExtendArrayPrototype() { %CheckIsBootstrapping(); InstallFunctions($Array.prototype, DONT_ENUM, $Array( + // No 'values' since it breaks webcompat: http://crbug.com/409858 'entries', ArrayEntries, - 'values', ArrayValues, 'keys', ArrayKeys )); diff --git a/deps/v8/src/array.js b/deps/v8/src/array.js index cf99aceb69..337e140020 100644 --- a/deps/v8/src/array.js +++ b/deps/v8/src/array.js @@ -1480,7 +1480,6 @@ function SetUpArray() { find: true, findIndex: true, keys: true, - values: true, }; %AddNamedProperty($Array.prototype, symbolUnscopables, unscopables, DONT_ENUM | READ_ONLY); diff --git a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc index a5128d0db2..252d213755 100644 --- a/deps/v8/src/base/platform/platform-posix.cc +++ b/deps/v8/src/base/platform/platform-posix.cc @@ -321,15 +321,11 @@ int OS::GetCurrentProcessId() { int OS::GetCurrentThreadId() { -#if V8_OS_MACOSX - return static_cast<int>(pthread_mach_thread_np(pthread_self())); -#elif V8_OS_LINUX +#if defined(ANDROID) return static_cast<int>(syscall(__NR_gettid)); -#elif V8_OS_ANDROID - return static_cast<int>(gettid()); #else - return static_cast<int>(pthread_self()); -#endif + return static_cast<int>(syscall(SYS_gettid)); +#endif // defined(ANDROID) } @@ -608,8 +604,9 @@ void Thread::Join() { void Thread::YieldCPU() { - const timespec delay = { 0, 1 }; - nanosleep(&delay, NULL); + int result = sched_yield(); + DCHECK_EQ(0, result); + USE(result); } diff --git a/deps/v8/src/base/platform/platform.h b/deps/v8/src/base/platform/platform.h index 9567572d80..8a54126268 100644 --- a/deps/v8/src/base/platform/platform.h +++ b/deps/v8/src/base/platform/platform.h @@ -35,7 +35,6 @@ namespace std { int signbit(double x); } # endif -#include <alloca.h> #endif #if V8_OS_QNX diff --git a/deps/v8/src/bootstrapper.cc b/deps/v8/src/bootstrapper.cc index 240be71918..361960dc22 100644 --- a/deps/v8/src/bootstrapper.cc +++ b/deps/v8/src/bootstrapper.cc @@ -2655,17 +2655,19 @@ Genesis::Genesis(Isolate* isolate, NONE).Assert(); // Initialize trigonometric lookup tables and constants. - const int constants_size = ARRAY_SIZE(fdlibm::MathConstants::constants); + const int constants_size = + ARRAY_SIZE(fdlibm::TrigonometricConstants::constants); const int table_num_bytes = constants_size * kDoubleSize; v8::Local<v8::ArrayBuffer> trig_buffer = v8::ArrayBuffer::New( reinterpret_cast<v8::Isolate*>(isolate), - const_cast<double*>(fdlibm::MathConstants::constants), table_num_bytes); + const_cast<double*>(fdlibm::TrigonometricConstants::constants), + table_num_bytes); v8::Local<v8::Float64Array> trig_table = v8::Float64Array::New(trig_buffer, 0, constants_size); Runtime::DefineObjectProperty( builtins, - factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("kMath")), + factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("kTrig")), Utils::OpenHandle(*trig_table), NONE).Assert(); } diff --git a/deps/v8/src/codegen.cc b/deps/v8/src/codegen.cc index a24220d9d0..6b12d64563 100644 --- a/deps/v8/src/codegen.cc +++ b/deps/v8/src/codegen.cc @@ -190,7 +190,7 @@ void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) { function->end_position() - function->start_position() + 1; for (int i = 0; i < source_len; i++) { if (stream.HasMore()) { - os << AsReversiblyEscapedUC16(stream.GetNext()); + os << AsUC16(stream.GetNext()); } } os << "\n\n"; diff --git a/deps/v8/src/compiler/change-lowering.cc b/deps/v8/src/compiler/change-lowering.cc deleted file mode 100644 index 3f8e45b9e7..0000000000 --- a/deps/v8/src/compiler/change-lowering.cc +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "src/compiler/change-lowering.h" - -#include "src/compiler/common-node-cache.h" -#include "src/compiler/graph.h" - -namespace v8 { -namespace internal { -namespace compiler { - -ChangeLoweringBase::ChangeLoweringBase(Graph* graph, Linkage* linkage, - CommonNodeCache* cache) - : graph_(graph), - isolate_(graph->zone()->isolate()), - linkage_(linkage), - cache_(cache), - common_(graph->zone()), - machine_(graph->zone()) {} - - -ChangeLoweringBase::~ChangeLoweringBase() {} - - -Node* ChangeLoweringBase::ExternalConstant(ExternalReference reference) { - Node** loc = cache()->FindExternalConstant(reference); - if (*loc == NULL) { - *loc = graph()->NewNode(common()->ExternalConstant(reference)); - } - return *loc; -} - - -Node* ChangeLoweringBase::HeapConstant(PrintableUnique<HeapObject> value) { - // TODO(bmeurer): Use common node cache. - return graph()->NewNode(common()->HeapConstant(value)); -} - - -Node* ChangeLoweringBase::ImmovableHeapConstant(Handle<HeapObject> value) { - return HeapConstant( - PrintableUnique<HeapObject>::CreateImmovable(graph()->zone(), value)); -} - - -Node* ChangeLoweringBase::Int32Constant(int32_t value) { - Node** loc = cache()->FindInt32Constant(value); - if (*loc == NULL) { - *loc = graph()->NewNode(common()->Int32Constant(value)); - } - return *loc; -} - - -Node* ChangeLoweringBase::NumberConstant(double value) { - Node** loc = cache()->FindNumberConstant(value); - if (*loc == NULL) { - *loc = graph()->NewNode(common()->NumberConstant(value)); - } - return *loc; -} - - -Node* ChangeLoweringBase::CEntryStubConstant() { - if (!c_entry_stub_constant_.is_set()) { - c_entry_stub_constant_.set( - ImmovableHeapConstant(CEntryStub(isolate(), 1).GetCode())); - } - return c_entry_stub_constant_.get(); -} - - -Node* ChangeLoweringBase::TrueConstant() { - if (!true_constant_.is_set()) { - true_constant_.set( - ImmovableHeapConstant(isolate()->factory()->true_value())); - } - return true_constant_.get(); -} - - -Node* ChangeLoweringBase::FalseConstant() { - if (!false_constant_.is_set()) { - false_constant_.set( - ImmovableHeapConstant(isolate()->factory()->false_value())); - } - return false_constant_.get(); -} - - -Reduction ChangeLoweringBase::ChangeBitToBool(Node* val, Node* control) { - Node* branch = graph()->NewNode(common()->Branch(), val, control); - - Node* if_true = graph()->NewNode(common()->IfTrue(), branch); - Node* true_value = TrueConstant(); - - Node* if_false = graph()->NewNode(common()->IfFalse(), branch); - Node* false_value = FalseConstant(); - - Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false); - Node* phi = - graph()->NewNode(common()->Phi(2), true_value, false_value, merge); - - return Replace(phi); -} - - -template <size_t kPointerSize> -ChangeLowering<kPointerSize>::ChangeLowering(Graph* graph, Linkage* linkage) - : ChangeLoweringBase(graph, linkage, - new (graph->zone()) CommonNodeCache(graph->zone())) {} - - -template <size_t kPointerSize> -Reduction ChangeLowering<kPointerSize>::Reduce(Node* node) { - Node* control = graph()->start(); - Node* effect = control; - switch (node->opcode()) { - case IrOpcode::kChangeBitToBool: - return ChangeBitToBool(node->InputAt(0), control); - case IrOpcode::kChangeBoolToBit: - return ChangeBoolToBit(node->InputAt(0)); - case IrOpcode::kChangeInt32ToTagged: - return ChangeInt32ToTagged(node->InputAt(0), effect, control); - case IrOpcode::kChangeTaggedToFloat64: - return ChangeTaggedToFloat64(node->InputAt(0), effect, control); - default: - return NoChange(); - } - UNREACHABLE(); - return NoChange(); -} - - -template <> -Reduction ChangeLowering<4>::ChangeBoolToBit(Node* val) { - return Replace( - graph()->NewNode(machine()->Word32Equal(), val, TrueConstant())); -} - - -template <> -Reduction ChangeLowering<8>::ChangeBoolToBit(Node* val) { - return Replace( - graph()->NewNode(machine()->Word64Equal(), val, TrueConstant())); -} - - -template <> -Reduction ChangeLowering<4>::ChangeInt32ToTagged(Node* val, Node* effect, - Node* control) { - Node* context = NumberConstant(0); - - Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), val, val); - Node* ovf = graph()->NewNode(common()->Projection(1), add); - - Node* branch = graph()->NewNode(common()->Branch(), ovf, control); - - Node* if_true = graph()->NewNode(common()->IfTrue(), branch); - Node* number = graph()->NewNode(machine()->ChangeInt32ToFloat64(), val); - - // TODO(bmeurer): Inline allocation if possible. - const Runtime::Function* fn = - Runtime::FunctionForId(Runtime::kAllocateHeapNumber); - DCHECK_EQ(0, fn->nargs); - CallDescriptor* desc = linkage()->GetRuntimeCallDescriptor( - fn->function_id, 0, Operator::kNoProperties); - Node* heap_number = - graph()->NewNode(common()->Call(desc), CEntryStubConstant(), - ExternalConstant(ExternalReference(fn, isolate())), - Int32Constant(0), context, effect, if_true); - - Node* store = graph()->NewNode( - machine()->Store(kMachineFloat64, kNoWriteBarrier), heap_number, - Int32Constant(HeapNumber::kValueOffset - kHeapObjectTag), number, effect, - heap_number); - - Node* if_false = graph()->NewNode(common()->IfFalse(), branch); - Node* smi = graph()->NewNode(common()->Projection(0), add); - - Node* merge = graph()->NewNode(common()->Merge(2), store, if_false); - Node* phi = graph()->NewNode(common()->Phi(2), heap_number, smi, merge); - - return Replace(phi); -} - - -template <> -Reduction ChangeLowering<8>::ChangeInt32ToTagged(Node* val, Node* effect, - Node* control) { - return Replace(graph()->NewNode( - machine()->Word64Shl(), val, - Int32Constant(SmiTagging<8>::kSmiShiftSize + kSmiTagSize))); -} - - -template <> -Reduction ChangeLowering<4>::ChangeTaggedToFloat64(Node* val, Node* effect, - Node* control) { - Node* branch = graph()->NewNode( - common()->Branch(), - graph()->NewNode(machine()->Word32And(), val, Int32Constant(kSmiTagMask)), - control); - - Node* if_true = graph()->NewNode(common()->IfTrue(), branch); - Node* load = graph()->NewNode( - machine()->Load(kMachineFloat64), val, - Int32Constant(HeapNumber::kValueOffset - kHeapObjectTag), if_true); - - Node* if_false = graph()->NewNode(common()->IfFalse(), branch); - Node* number = graph()->NewNode( - machine()->ChangeInt32ToFloat64(), - graph()->NewNode( - machine()->Word32Sar(), val, - Int32Constant(SmiTagging<4>::kSmiShiftSize + kSmiTagSize))); - - Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false); - Node* phi = graph()->NewNode(common()->Phi(2), load, number, merge); - - return Replace(phi); -} - - -template <> -Reduction ChangeLowering<8>::ChangeTaggedToFloat64(Node* val, Node* effect, - Node* control) { - Node* branch = graph()->NewNode( - common()->Branch(), - graph()->NewNode(machine()->Word64And(), val, Int32Constant(kSmiTagMask)), - control); - - Node* if_true = graph()->NewNode(common()->IfTrue(), branch); - Node* load = graph()->NewNode( - machine()->Load(kMachineFloat64), val, - Int32Constant(HeapNumber::kValueOffset - kHeapObjectTag), if_true); - - Node* if_false = graph()->NewNode(common()->IfFalse(), branch); - Node* number = graph()->NewNode( - machine()->ChangeInt32ToFloat64(), - graph()->NewNode( - machine()->ConvertInt64ToInt32(), - graph()->NewNode( - machine()->Word64Sar(), val, - Int32Constant(SmiTagging<8>::kSmiShiftSize + kSmiTagSize)))); - - Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false); - Node* phi = graph()->NewNode(common()->Phi(2), load, number, merge); - - return Replace(phi); -} - - -template class ChangeLowering<4>; -template class ChangeLowering<8>; - -} // namespace compiler -} // namespace internal -} // namespace v8 diff --git a/deps/v8/src/compiler/change-lowering.h b/deps/v8/src/compiler/change-lowering.h deleted file mode 100644 index 3e16d800de..0000000000 --- a/deps/v8/src/compiler/change-lowering.h +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef V8_COMPILER_CHANGE_LOWERING_H_ -#define V8_COMPILER_CHANGE_LOWERING_H_ - -#include "include/v8.h" -#include "src/compiler/common-operator.h" -#include "src/compiler/graph-reducer.h" -#include "src/compiler/machine-operator.h" - -namespace v8 { -namespace internal { -namespace compiler { - -// Forward declarations. -class CommonNodeCache; -class Linkage; - -class ChangeLoweringBase : public Reducer { - public: - ChangeLoweringBase(Graph* graph, Linkage* linkage, CommonNodeCache* cache); - virtual ~ChangeLoweringBase(); - - protected: - Node* ExternalConstant(ExternalReference reference); - Node* HeapConstant(PrintableUnique<HeapObject> value); - Node* ImmovableHeapConstant(Handle<HeapObject> value); - Node* Int32Constant(int32_t value); - Node* NumberConstant(double value); - Node* CEntryStubConstant(); - Node* TrueConstant(); - Node* FalseConstant(); - - Reduction ChangeBitToBool(Node* val, Node* control); - - Graph* graph() const { return graph_; } - Isolate* isolate() const { return isolate_; } - Linkage* linkage() const { return linkage_; } - CommonNodeCache* cache() const { return cache_; } - CommonOperatorBuilder* common() { return &common_; } - MachineOperatorBuilder* machine() { return &machine_; } - - private: - Graph* graph_; - Isolate* isolate_; - Linkage* linkage_; - CommonNodeCache* cache_; - CommonOperatorBuilder common_; - MachineOperatorBuilder machine_; - - SetOncePointer<Node> c_entry_stub_constant_; - SetOncePointer<Node> true_constant_; - SetOncePointer<Node> false_constant_; -}; - - -template <size_t kPointerSize = kApiPointerSize> -class ChangeLowering V8_FINAL : public ChangeLoweringBase { - public: - ChangeLowering(Graph* graph, Linkage* linkage); - ChangeLowering(Graph* graph, Linkage* linkage, CommonNodeCache* cache) - : ChangeLoweringBase(graph, linkage, cache) {} - virtual ~ChangeLowering() {} - - virtual Reduction Reduce(Node* node) V8_OVERRIDE; - - private: - Reduction ChangeBoolToBit(Node* val); - Reduction ChangeInt32ToTagged(Node* val, Node* effect, Node* control); - Reduction ChangeTaggedToFloat64(Node* val, Node* effect, Node* control); -}; - -} // namespace compiler -} // namespace internal -} // namespace v8 - -#endif // V8_COMPILER_CHANGE_LOWERING_H_ diff --git a/deps/v8/src/compiler/node-properties-inl.h b/deps/v8/src/compiler/node-properties-inl.h index 2d63b0cc1b..ea58b4d8a1 100644 --- a/deps/v8/src/compiler/node-properties-inl.h +++ b/deps/v8/src/compiler/node-properties-inl.h @@ -23,12 +23,13 @@ namespace compiler { // Inputs are always arranged in order as follows: // 0 [ values, context, effects, control ] node->InputCount() -inline int NodeProperties::FirstValueIndex(Node* node) { return 0; } -inline int NodeProperties::FirstContextIndex(Node* node) { +inline int NodeProperties::GetContextIndex(Node* node) { return PastValueIndex(node); } +inline int NodeProperties::FirstValueIndex(Node* node) { return 0; } + inline int NodeProperties::FirstEffectIndex(Node* node) { return PastContextIndex(node); } @@ -44,7 +45,7 @@ inline int NodeProperties::PastValueIndex(Node* node) { } inline int NodeProperties::PastContextIndex(Node* node) { - return FirstContextIndex(node) + + return GetContextIndex(node) + OperatorProperties::GetContextInputCount(node->op()); } @@ -70,7 +71,7 @@ inline Node* NodeProperties::GetValueInput(Node* node, int index) { inline Node* NodeProperties::GetContextInput(Node* node) { DCHECK(OperatorProperties::HasContextInput(node->op())); - return node->InputAt(FirstContextIndex(node)); + return node->InputAt(GetContextIndex(node)); } inline Node* NodeProperties::GetEffectInput(Node* node, int index) { @@ -105,7 +106,7 @@ inline bool NodeProperties::IsValueEdge(Node::Edge edge) { inline bool NodeProperties::IsContextEdge(Node::Edge edge) { Node* node = edge.from(); - return IsInputRange(edge, FirstContextIndex(node), + return IsInputRange(edge, GetContextIndex(node), OperatorProperties::GetContextInputCount(node->op())); } @@ -133,14 +134,13 @@ inline bool NodeProperties::IsControl(Node* node) { // ----------------------------------------------------------------------------- // Miscellaneous mutators. -inline void NodeProperties::ReplaceControlInput(Node* node, Node* control) { - node->ReplaceInput(FirstControlIndex(node), control); -} - inline void NodeProperties::ReplaceEffectInput(Node* node, Node* effect, int index) { DCHECK(index < OperatorProperties::GetEffectInputCount(node->op())); - return node->ReplaceInput(FirstEffectIndex(node) + index, effect); + return node->ReplaceInput( + OperatorProperties::GetValueInputCount(node->op()) + + OperatorProperties::GetContextInputCount(node->op()) + index, + effect); } inline void NodeProperties::RemoveNonValueInputs(Node* node) { diff --git a/deps/v8/src/compiler/node-properties.h b/deps/v8/src/compiler/node-properties.h index 6088a0a3a0..eaa4d66ada 100644 --- a/deps/v8/src/compiler/node-properties.h +++ b/deps/v8/src/compiler/node-properties.h @@ -5,13 +5,15 @@ #ifndef V8_COMPILER_NODE_PROPERTIES_H_ #define V8_COMPILER_NODE_PROPERTIES_H_ -#include "src/compiler/node.h" +#include "src/v8.h" + #include "src/types.h" namespace v8 { namespace internal { namespace compiler { +class Node; class Operator; // A facade that simplifies access to the different kinds of inputs to a node. @@ -29,7 +31,6 @@ class NodeProperties { static inline bool IsControl(Node* node); - static inline void ReplaceControlInput(Node* node, Node* control); static inline void ReplaceEffectInput(Node* node, Node* effect, int index = 0); static inline void RemoveNonValueInputs(Node* node); @@ -37,9 +38,9 @@ class NodeProperties { static inline Bounds GetBounds(Node* node); static inline void SetBounds(Node* node, Bounds bounds); - private: + static inline int GetContextIndex(Node* node); + static inline int FirstValueIndex(Node* node); - static inline int FirstContextIndex(Node* node); static inline int FirstEffectIndex(Node* node); static inline int FirstControlIndex(Node* node); static inline int PastValueIndex(Node* node); @@ -49,9 +50,8 @@ class NodeProperties { static inline bool IsInputRange(Node::Edge edge, int first, int count); }; - -} // namespace compiler -} // namespace internal -} // namespace v8 +} +} +} // namespace v8::internal::compiler #endif // V8_COMPILER_NODE_PROPERTIES_H_ diff --git a/deps/v8/src/compiler/pipeline.cc b/deps/v8/src/compiler/pipeline.cc index b0b3eb76ef..fa0ff173b2 100644 --- a/deps/v8/src/compiler/pipeline.cc +++ b/deps/v8/src/compiler/pipeline.cc @@ -14,7 +14,6 @@ #include "src/compiler/js-context-specialization.h" #include "src/compiler/js-generic-lowering.h" #include "src/compiler/js-typed-lowering.h" -#include "src/compiler/phi-reducer.h" #include "src/compiler/register-allocator.h" #include "src/compiler/schedule.h" #include "src/compiler/scheduler.h" @@ -23,7 +22,6 @@ #include "src/compiler/verifier.h" #include "src/hydrogen.h" #include "src/ostreams.h" -#include "src/utils.h" namespace v8 { namespace internal { @@ -75,25 +73,9 @@ class PhaseStats { void Pipeline::VerifyAndPrintGraph(Graph* graph, const char* phase) { if (FLAG_trace_turbo) { - char buffer[256]; - Vector<char> filename(buffer, sizeof(buffer)); - SmartArrayPointer<char> functionname = - info_->shared_info()->DebugName()->ToCString(); - if (strlen(functionname.get()) > 0) { - SNPrintF(filename, "turbo-%s-%s.dot", functionname.get(), phase); - } else { - SNPrintF(filename, "turbo-%p-%s.dot", static_cast<void*>(info_), phase); - } - std::replace(filename.start(), filename.start() + filename.length(), ' ', - '_'); - FILE* file = base::OS::FOpen(filename.start(), "w+"); - OFStream of(file); - of << AsDOT(*graph); - fclose(file); - OFStream os(stdout); - os << "-- " << phase << " graph printed to file " << filename.start() - << "\n"; + os << "-- " << phase << " graph -----------------------------------\n" + << AsDOT(*graph); } if (VerifyGraphs()) Verifier::Run(graph); } @@ -162,17 +144,6 @@ Handle<Code> Pipeline::GenerateCode() { graph_builder.CreateGraph(); context_node = graph_builder.GetFunctionContext(); } - { - PhaseStats phi_reducer_stats(info(), PhaseStats::CREATE_GRAPH, - "phi reduction"); - PhiReducer phi_reducer; - GraphReducer graph_reducer(&graph); - graph_reducer.AddReducer(&phi_reducer); - graph_reducer.ReduceGraph(); - // TODO(mstarzinger): Running reducer once ought to be enough for everyone. - graph_reducer.ReduceGraph(); - graph_reducer.ReduceGraph(); - } VerifyAndPrintGraph(&graph, "Initial untyped"); diff --git a/deps/v8/src/compiler/representation-change.h b/deps/v8/src/compiler/representation-change.h index bd5fb5f793..94225bb2ef 100644 --- a/deps/v8/src/compiler/representation-change.h +++ b/deps/v8/src/compiler/representation-change.h @@ -88,7 +88,7 @@ class RepresentationChanger { } else if (use_type & rFloat64) { return GetFloat64RepresentationFor(node, output_type); } else if (use_type & rWord32) { - return GetWord32RepresentationFor(node, output_type, use_type & tUint32); + return GetWord32RepresentationFor(node, output_type); } else if (use_type & rBit) { return GetBitRepresentationFor(node, output_type); } else if (use_type & rWord64) { @@ -165,8 +165,10 @@ class RepresentationChanger { if (output_type & rWord32) { if (output_type & tUint32) { op = machine()->ChangeUint32ToFloat64(); - } else { + } else if (output_type & tInt32) { op = machine()->ChangeInt32ToFloat64(); + } else { + return TypeError(node, output_type, rFloat64); } } else if (output_type & rTagged) { op = simplified()->ChangeTaggedToFloat64(); @@ -176,23 +178,22 @@ class RepresentationChanger { return jsgraph()->graph()->NewNode(op, node); } - Node* GetWord32RepresentationFor(Node* node, RepTypeUnion output_type, - bool use_unsigned) { + Node* GetWord32RepresentationFor(Node* node, RepTypeUnion output_type) { // Eagerly fold representation changes for constants. switch (node->opcode()) { case IrOpcode::kInt32Constant: return node; // No change necessary. case IrOpcode::kNumberConstant: case IrOpcode::kFloat64Constant: { - double value = ValueOf<double>(node->op()); - if (value < 0) { - DCHECK(IsInt32Double(value)); - int32_t iv = static_cast<int32_t>(value); - return jsgraph()->Int32Constant(iv); + if (output_type & tUint32) { + int32_t value = static_cast<int32_t>( + static_cast<uint32_t>(ValueOf<double>(node->op()))); + return jsgraph()->Int32Constant(value); + } else if (output_type & tInt32) { + int32_t value = FastD2I(ValueOf<double>(node->op())); + return jsgraph()->Int32Constant(value); } else { - DCHECK(IsUint32Double(value)); - int32_t iv = static_cast<int32_t>(static_cast<uint32_t>(value)); - return jsgraph()->Int32Constant(iv); + return TypeError(node, output_type, rWord32); } } default: @@ -201,16 +202,20 @@ class RepresentationChanger { // Select the correct X -> Word32 operator. Operator* op = NULL; if (output_type & rFloat64) { - if (output_type & tUint32 || use_unsigned) { + if (output_type & tUint32) { op = machine()->ChangeFloat64ToUint32(); - } else { + } else if (output_type & tInt32) { op = machine()->ChangeFloat64ToInt32(); + } else { + return TypeError(node, output_type, rWord32); } } else if (output_type & rTagged) { - if (output_type & tUint32 || use_unsigned) { + if (output_type & tUint32) { op = simplified()->ChangeTaggedToUint32(); - } else { + } else if (output_type & tInt32) { op = simplified()->ChangeTaggedToInt32(); + } else { + return TypeError(node, output_type, rWord32); } } else if (output_type & rBit) { return node; // Sloppy comparison -> word32. diff --git a/deps/v8/src/date.h b/deps/v8/src/date.h index 633dd9f38e..813d3126ed 100644 --- a/deps/v8/src/date.h +++ b/deps/v8/src/date.h @@ -103,14 +103,52 @@ class DateCache { } // ECMA 262 - 15.9.1.9 + // LocalTime(t) = t + LocalTZA + DaylightSavingTA(t) int64_t ToLocal(int64_t time_ms) { return time_ms + LocalOffsetInMs() + DaylightSavingsOffsetInMs(time_ms); } // ECMA 262 - 15.9.1.9 + // UTC(t) = t - LocalTZA - DaylightSavingTA(t - LocalTZA) int64_t ToUTC(int64_t time_ms) { + // We need to compute UTC time that corresponds to the given local time. + // Literally following spec here leads to incorrect time computation at + // the points were we transition to and from DST. + // + // The following shows that using DST for (t - LocalTZA - hour) produces + // correct conversion. + // + // Consider transition to DST at local time L1. + // Let L0 = L1 - hour, L2 = L1 + hour, + // U1 = UTC time that corresponds to L1, + // U0 = U1 - hour. + // Transitioning to DST moves local clock one hour forward L1 => L2, so + // U0 = UTC time that corresponds to L0 = L0 - LocalTZA, + // U1 = UTC time that corresponds to L1 = L1 - LocalTZA, + // U1 = UTC time that corresponds to L2 = L2 - LocalTZA - hour. + // Note that DST(U0 - hour) = 0, DST(U0) = 0, DST(U1) = 1. + // U0 = L0 - LocalTZA - DST(L0 - LocalTZA - hour), + // U1 = L1 - LocalTZA - DST(L1 - LocalTZA - hour), + // U1 = L2 - LocalTZA - DST(L2 - LocalTZA - hour). + // + // Consider transition from DST at local time L1. + // Let L0 = L1 - hour, + // U1 = UTC time that corresponds to L1, + // U0 = U1 - hour, U2 = U1 + hour. + // Transitioning from DST moves local clock one hour back L1 => L0, so + // U0 = UTC time that corresponds to L0 (before transition) + // = L0 - LocalTZA - hour. + // U1 = UTC time that corresponds to L0 (after transition) + // = L0 - LocalTZA = L1 - LocalTZA - hour + // U2 = UTC time that corresponds to L1 = L1 - LocalTZA. + // Note that DST(U0) = 1, DST(U1) = 0, DST(U2) = 0. + // U0 = L0 - LocalTZA - DST(L0 - LocalTZA - hour) = L0 - LocalTZA - DST(U0). + // U2 = L1 - LocalTZA - DST(L1 - LocalTZA - hour) = L1 - LocalTZA - DST(U1). + // It is impossible to get U1 from local time. + + const int kMsPerHour = 3600 * 1000; time_ms -= LocalOffsetInMs(); - return time_ms - DaylightSavingsOffsetInMs(time_ms); + return time_ms - DaylightSavingsOffsetInMs(time_ms - kMsPerHour); } diff --git a/deps/v8/src/debug-debugger.js b/deps/v8/src/debug-debugger.js index f24a14a79c..a4c8801ea6 100644 --- a/deps/v8/src/debug-debugger.js +++ b/deps/v8/src/debug-debugger.js @@ -430,7 +430,7 @@ ScriptBreakPoint.prototype.set = function (script) { if (IS_NULL(position)) return; // Create a break point object and set the break point. - var break_point = MakeBreakPoint(position, this); + break_point = MakeBreakPoint(position, this); break_point.setIgnoreCount(this.ignoreCount()); var actual_position = %SetScriptBreakPoint(script, position, this.position_alignment_, diff --git a/deps/v8/src/factory.cc b/deps/v8/src/factory.cc index 39e32806b7..934ab25abb 100644 --- a/deps/v8/src/factory.cc +++ b/deps/v8/src/factory.cc @@ -664,14 +664,6 @@ Handle<Symbol> Factory::NewPrivateSymbol() { } -Handle<Symbol> Factory::NewPrivateOwnSymbol() { - Handle<Symbol> symbol = NewSymbol(); - symbol->set_is_private(true); - symbol->set_is_own(true); - return symbol; -} - - Handle<Context> Factory::NewNativeContext() { Handle<FixedArray> array = NewFixedArray(Context::NATIVE_CONTEXT_SLOTS); array->set_map_no_write_barrier(*native_context_map()); diff --git a/deps/v8/src/factory.h b/deps/v8/src/factory.h index aa1f94d814..f09d24719c 100644 --- a/deps/v8/src/factory.h +++ b/deps/v8/src/factory.h @@ -221,7 +221,6 @@ class Factory V8_FINAL { // Create a symbol. Handle<Symbol> NewSymbol(); Handle<Symbol> NewPrivateSymbol(); - Handle<Symbol> NewPrivateOwnSymbol(); // Create a global (but otherwise uninitialized) context. Handle<Context> NewNativeContext(); diff --git a/deps/v8/src/flag-definitions.h b/deps/v8/src/flag-definitions.h index 55af2e6740..591fd4f110 100644 --- a/deps/v8/src/flag-definitions.h +++ b/deps/v8/src/flag-definitions.h @@ -460,9 +460,7 @@ DEFINE_BOOL(enable_liveedit, true, "enable liveedit experimental feature") DEFINE_BOOL(hard_abort, true, "abort by crashing") // execution.cc -// Slightly less than 1MB, since Windows' default stack size for -// the main execution thread is 1MB for both 32 and 64-bit. -DEFINE_INT(stack_size, 984, +DEFINE_INT(stack_size, V8_DEFAULT_STACK_SIZE_KB, "default size of stack region v8 is allowed to use (in kBytes)") // frames.cc diff --git a/deps/v8/src/generator.js b/deps/v8/src/generator.js index c62fe2c771..1c7c4ec272 100644 --- a/deps/v8/src/generator.js +++ b/deps/v8/src/generator.js @@ -47,9 +47,7 @@ function GeneratorFunctionConstructor(arg1) { // length == 1 var global_proxy = %GlobalProxy(global); // Compile the string in the constructor and not a helper so that errors // appear to come from here. - var f = %CompileString(source, true); - if (!IS_FUNCTION(f)) return f; - f = %_CallFunction(global_proxy, f); + var f = %_CallFunction(global_proxy, %CompileString(source, true)); %FunctionMarkNameShouldPrintAsAnonymous(f); return f; } diff --git a/deps/v8/src/globals.h b/deps/v8/src/globals.h index 258707493e..89940ccaee 100644 --- a/deps/v8/src/globals.h +++ b/deps/v8/src/globals.h @@ -31,7 +31,8 @@ #else #define V8_TURBOFAN_BACKEND 0 #endif -#if V8_TURBOFAN_BACKEND && !(V8_OS_WIN && V8_TARGET_ARCH_X64) +#if V8_TURBOFAN_BACKEND && !V8_TARGET_ARCH_ARM64 && \ + !(V8_OS_WIN && V8_TARGET_ARCH_X64) #define V8_TURBOFAN_TARGET 1 #else #define V8_TURBOFAN_TARGET 0 @@ -68,6 +69,18 @@ namespace internal { // Determine whether the architecture uses an out-of-line constant pool. #define V8_OOL_CONSTANT_POOL 0 +#ifdef V8_TARGET_ARCH_ARM +// Set stack limit lower for ARM than for other architectures because +// stack allocating MacroAssembler takes 120K bytes. +// See issue crbug.com/405338 +#define V8_DEFAULT_STACK_SIZE_KB 864 +#else +// Slightly less than 1MB, since Windows' default stack size for +// the main execution thread is 1MB for both 32 and 64-bit. +#define V8_DEFAULT_STACK_SIZE_KB 984 +#endif + + // Support for alternative bool type. This is only enabled if the code is // compiled with USE_MYBOOL defined. This catches some nasty type bugs. // For instance, 'bool b = "false";' results in b == true! This is a hidden diff --git a/deps/v8/src/heap/heap-inl.h b/deps/v8/src/heap/heap-inl.h index adb6e25bb7..3b6a8033a2 100644 --- a/deps/v8/src/heap/heap-inl.h +++ b/deps/v8/src/heap/heap-inl.h @@ -31,18 +31,12 @@ void PromotionQueue::insert(HeapObject* target, int size) { NewSpacePage::FromAddress(reinterpret_cast<Address>(rear_)); DCHECK(!rear_page->prev_page()->is_anchor()); rear_ = reinterpret_cast<intptr_t*>(rear_page->prev_page()->area_end()); - ActivateGuardIfOnTheSamePage(); } - if (guard_) { - DCHECK(GetHeadPage() == - Page::FromAllocationTop(reinterpret_cast<Address>(limit_))); - - if ((rear_ - 2) < limit_) { - RelocateQueueHead(); - emergency_stack_->Add(Entry(target, size)); - return; - } + if ((rear_ - 2) < limit_) { + RelocateQueueHead(); + emergency_stack_->Add(Entry(target, size)); + return; } *(--rear_) = reinterpret_cast<intptr_t>(target); @@ -55,13 +49,6 @@ void PromotionQueue::insert(HeapObject* target, int size) { } -void PromotionQueue::ActivateGuardIfOnTheSamePage() { - guard_ = guard_ || - heap_->new_space()->active_space()->current_page()->address() == - GetHeadPage()->address(); -} - - template <> bool inline Heap::IsOneByte(Vector<const char> str, int chars) { // TODO(dcarney): incorporate Latin-1 check when Latin-1 is supported? diff --git a/deps/v8/src/heap/heap.cc b/deps/v8/src/heap/heap.cc index e65d4459c6..7ef89bb06f 100644 --- a/deps/v8/src/heap/heap.cc +++ b/deps/v8/src/heap/heap.cc @@ -1373,7 +1373,6 @@ void PromotionQueue::Initialize() { front_ = rear_ = reinterpret_cast<intptr_t*>(heap_->new_space()->ToSpaceEnd()); emergency_stack_ = NULL; - guard_ = false; } @@ -1971,15 +1970,16 @@ class ScavengingVisitor : public StaticVisitorBase { HeapObject* target = NULL; // Initialization to please compiler. if (allocation.To(&target)) { + // Order is important here: Set the promotion limit before storing a + // filler for double alignment or migrating the object. Otherwise we + // may end up overwriting promotion queue entries when we migrate the + // object. + heap->promotion_queue()->SetNewLimit(heap->new_space()->top()); + if (alignment != kObjectAlignment) { target = EnsureDoubleAligned(heap, target, allocation_size); } - // Order is important here: Set the promotion limit before migrating - // the object. Otherwise we may end up overwriting promotion queue - // entries when we migrate the object. - heap->promotion_queue()->SetNewLimit(heap->new_space()->top()); - // Order is important: slot might be inside of the target if target // was allocated over a dead object and slot comes from the store // buffer. @@ -2834,7 +2834,7 @@ void Heap::CreateInitialObjects() { // Allocate the dictionary of intrinsic function names. Handle<NameDictionary> intrinsic_names = - NameDictionary::New(isolate(), Runtime::kNumFunctions, TENURED); + NameDictionary::New(isolate(), Runtime::kNumFunctions); Runtime::InitializeIntrinsicFunctionNames(isolate(), intrinsic_names); set_intrinsic_function_names(*intrinsic_names); diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index c313333362..b21951cd92 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -393,18 +393,11 @@ class PromotionQueue { emergency_stack_ = NULL; } - inline void ActivateGuardIfOnTheSamePage(); - Page* GetHeadPage() { return Page::FromAllocationTop(reinterpret_cast<Address>(rear_)); } void SetNewLimit(Address limit) { - if (!guard_) { - return; - } - - DCHECK(GetHeadPage() == Page::FromAllocationTop(limit)); limit_ = reinterpret_cast<intptr_t*>(limit); if (limit_ <= rear_) { @@ -461,8 +454,6 @@ class PromotionQueue { intptr_t* rear_; intptr_t* limit_; - bool guard_; - static const int kEntrySizeInWords = 2; struct Entry { diff --git a/deps/v8/src/heap/spaces.cc b/deps/v8/src/heap/spaces.cc index 9be53e03f2..e197f5a33e 100644 --- a/deps/v8/src/heap/spaces.cc +++ b/deps/v8/src/heap/spaces.cc @@ -193,8 +193,10 @@ Address CodeRange::AllocateRawMemory(const size_t requested_size, const size_t commit_size, size_t* allocated) { DCHECK(commit_size <= requested_size); - DCHECK(current_allocation_block_index_ < allocation_list_.length()); - if (requested_size > allocation_list_[current_allocation_block_index_].size) { + DCHECK(allocation_list_.length() == 0 || + current_allocation_block_index_ < allocation_list_.length()); + if (allocation_list_.length() == 0 || + requested_size > allocation_list_[current_allocation_block_index_].size) { // Find an allocation block large enough. if (!GetNextAllocationBlock(requested_size)) return NULL; } @@ -218,7 +220,7 @@ Address CodeRange::AllocateRawMemory(const size_t requested_size, allocation_list_[current_allocation_block_index_].size -= *allocated; if (*allocated == current.size) { // This block is used up, get the next one. - if (!GetNextAllocationBlock(0)) return NULL; + GetNextAllocationBlock(0); } return current.start; } @@ -1365,7 +1367,6 @@ bool NewSpace::AddFreshPage() { Address limit = NewSpacePage::FromLimit(top)->area_end(); if (heap()->gc_state() == Heap::SCAVENGE) { heap()->promotion_queue()->SetNewLimit(limit); - heap()->promotion_queue()->ActivateGuardIfOnTheSamePage(); } int remaining_in_page = static_cast<int>(limit - top); diff --git a/deps/v8/src/heap/store-buffer.cc b/deps/v8/src/heap/store-buffer.cc index b48e1a4049..48e98a3dec 100644 --- a/deps/v8/src/heap/store-buffer.cc +++ b/deps/v8/src/heap/store-buffer.cc @@ -486,10 +486,11 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback, heap_object = iterator.Next()) { // We skip free space objects. if (!heap_object->IsFiller()) { + DCHECK(heap_object->IsMap()); FindPointersToNewSpaceInRegion( - heap_object->address() + HeapObject::kHeaderSize, - heap_object->address() + heap_object->Size(), slot_callback, - clear_maps); + heap_object->address() + Map::kPointerFieldsBeginOffset, + heap_object->address() + Map::kPointerFieldsEndOffset, + slot_callback, clear_maps); } } } else { diff --git a/deps/v8/src/hydrogen-instructions.cc b/deps/v8/src/hydrogen-instructions.cc index b75bec0f5e..5065d4ce39 100644 --- a/deps/v8/src/hydrogen-instructions.cc +++ b/deps/v8/src/hydrogen-instructions.cc @@ -1511,17 +1511,8 @@ HInstruction* HForceRepresentation::New(Zone* zone, HValue* context, HValue* value, Representation representation) { if (FLAG_fold_constants && value->IsConstant()) { HConstant* c = HConstant::cast(value); - if (c->HasNumberValue()) { - double double_res = c->DoubleValue(); - if (representation.IsDouble()) { - return HConstant::New(zone, context, double_res); - - } else if (representation.CanContainDouble(double_res)) { - return HConstant::New(zone, context, - static_cast<int32_t>(double_res), - representation); - } - } + c = c->CopyToRepresentation(representation, zone); + if (c != NULL) return c; } return new(zone) HForceRepresentation(value, representation); } diff --git a/deps/v8/src/hydrogen.cc b/deps/v8/src/hydrogen.cc index 63174aa5db..9f3945f275 100644 --- a/deps/v8/src/hydrogen.cc +++ b/deps/v8/src/hydrogen.cc @@ -3498,7 +3498,7 @@ int HGraph::TraceInlinedFunction( shared->end_position() - shared->start_position() + 1; for (int i = 0; i < source_len; i++) { if (stream.HasMore()) { - os << AsReversiblyEscapedUC16(stream.GetNext()); + os << AsUC16(stream.GetNext()); } } } @@ -8800,6 +8800,12 @@ HValue* HOptimizedGraphBuilder::BuildArrayIndexOf(HValue* receiver, Push(graph()->GetConstantMinus1()); if (IsFastDoubleElementsKind(kind) || IsFastSmiElementsKind(kind)) { + // Make sure that we can actually compare numbers correctly below, see + // https://code.google.com/p/chromium/issues/detail?id=407946 for details. + search_element = AddUncasted<HForceRepresentation>( + search_element, IsFastSmiElementsKind(kind) ? Representation::Smi() + : Representation::Double()); + LoopBuilder loop(this, context(), direction); { HValue* index = loop.BeginBody(initial, terminating, token); @@ -8807,12 +8813,8 @@ HValue* HOptimizedGraphBuilder::BuildArrayIndexOf(HValue* receiver, elements, index, static_cast<HValue*>(NULL), kind, ALLOW_RETURN_HOLE); IfBuilder if_issame(this); - if (IsFastDoubleElementsKind(kind)) { - if_issame.If<HCompareNumericAndBranch>( - element, search_element, Token::EQ_STRICT); - } else { - if_issame.If<HCompareObjectEqAndBranch>(element, search_element); - } + if_issame.If<HCompareNumericAndBranch>(element, search_element, + Token::EQ_STRICT); if_issame.Then(); { Drop(1); diff --git a/deps/v8/src/isolate.cc b/deps/v8/src/isolate.cc index 25f42f6ccb..215296d735 100644 --- a/deps/v8/src/isolate.cc +++ b/deps/v8/src/isolate.cc @@ -1090,9 +1090,10 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) { thread_local_top()->pending_message_end_pos_ = location->end_pos(); } - // If the abort-on-uncaught-exception flag is specified, and if the - // exception is not caught by JavaScript (even when an external handler is - // present). + // If the abort-on-uncaught-exception flag is specified, abort on any + // exception not caught by JavaScript, even when an external handler is + // present. This flag is intended for use by JavaScript developers, so + // print a user-friendly stack trace (not an internal one). if (fatal_exception_depth == 0 && FLAG_abort_on_uncaught_exception && (report_exception || can_be_caught_externally)) { @@ -1297,6 +1298,7 @@ void Isolate::SetCaptureStackTraceForUncaughtExceptions( stack_trace_for_uncaught_exceptions_options_ = options; } + Handle<Context> Isolate::native_context() { return handle(context()->native_context()); } diff --git a/deps/v8/src/isolate.h b/deps/v8/src/isolate.h index de0cb49512..9ef6fc732a 100644 --- a/deps/v8/src/isolate.h +++ b/deps/v8/src/isolate.h @@ -1326,7 +1326,6 @@ class Isolate { v8::Isolate::UseCounterCallback use_counter_callback_; - friend class ExecutionAccess; friend class HandleScopeImplementer; friend class IsolateInitializer; diff --git a/deps/v8/src/json-parser.h b/deps/v8/src/json-parser.h index c23e50dbb4..19cffde0c9 100644 --- a/deps/v8/src/json-parser.h +++ b/deps/v8/src/json-parser.h @@ -182,6 +182,9 @@ class JsonParser BASE_EMBEDDED { private: Zone* zone() { return &zone_; } + void CommitStateToJsonObject(Handle<JSObject> json_object, Handle<Map> map, + ZoneList<Handle<Object> >* properties); + Handle<String> source_; int source_length_; Handle<SeqOneByteString> seq_source_; @@ -408,13 +411,7 @@ Handle<Object> JsonParser<seq_ascii>::ParseJsonObject() { } // Commit the intermediate state to the object and stop transitioning. - JSObject::AllocateStorageForMap(json_object, map); - int length = properties.length(); - for (int i = 0; i < length; i++) { - Handle<Object> value = properties[i]; - FieldIndex index = FieldIndex::ForPropertyIndex(*map, i); - json_object->FastPropertyAtPut(index, *value); - } + CommitStateToJsonObject(json_object, map, &properties); } else { key = ParseJsonInternalizedString(); if (key.is_null() || c0_ != ':') return ReportUnexpectedCharacter(); @@ -424,8 +421,7 @@ Handle<Object> JsonParser<seq_ascii>::ParseJsonObject() { if (value.is_null()) return ReportUnexpectedCharacter(); } - JSObject::SetOwnPropertyIgnoreAttributes( - json_object, key, value, NONE).Assert(); + Runtime::DefineObjectProperty(json_object, key, value, NONE).Check(); } while (MatchSkipWhiteSpace(',')); if (c0_ != '}') { return ReportUnexpectedCharacter(); @@ -433,19 +429,50 @@ Handle<Object> JsonParser<seq_ascii>::ParseJsonObject() { // If we transitioned until the very end, transition the map now. if (transitioning) { - JSObject::AllocateStorageForMap(json_object, map); - int length = properties.length(); - for (int i = 0; i < length; i++) { - Handle<Object> value = properties[i]; - FieldIndex index = FieldIndex::ForPropertyIndex(*map, i); - json_object->FastPropertyAtPut(index, *value); - } + CommitStateToJsonObject(json_object, map, &properties); } } AdvanceSkipWhitespace(); return scope.CloseAndEscape(json_object); } + +template <bool seq_one_byte> +void JsonParser<seq_one_byte>::CommitStateToJsonObject( + Handle<JSObject> json_object, Handle<Map> map, + ZoneList<Handle<Object> >* properties) { + JSObject::AllocateStorageForMap(json_object, map); + DCHECK(!json_object->map()->is_dictionary_map()); + + DisallowHeapAllocation no_gc; + Factory* factory = isolate()->factory(); + // If the |json_object|'s map is exactly the same as |map| then the + // |properties| values correspond to the |map| and nothing more has to be + // done. But if the |json_object|'s map is different then we have to + // iterate descriptors to ensure that properties still correspond to the + // map. + bool slow_case = json_object->map() != *map; + DescriptorArray* descriptors = NULL; + + int length = properties->length(); + if (slow_case) { + descriptors = json_object->map()->instance_descriptors(); + DCHECK(json_object->map()->NumberOfOwnDescriptors() == length); + } + for (int i = 0; i < length; i++) { + Handle<Object> value = (*properties)[i]; + if (slow_case && value->IsMutableHeapNumber() && + !descriptors->GetDetails(i).representation().IsDouble()) { + // Turn mutable heap numbers into immutable if the field representation + // is not double. + HeapNumber::cast(*value)->set_map(*factory->heap_number_map()); + } + FieldIndex index = FieldIndex::ForPropertyIndex(*map, i); + json_object->FastPropertyAtPut(index, *value); + } +} + + // Parse a JSON array. Position must be right at '['. template <bool seq_ascii> Handle<Object> JsonParser<seq_ascii>::ParseJsonArray() { diff --git a/deps/v8/src/lookup.h b/deps/v8/src/lookup.h index 2d609c5f66..923e8107fd 100644 --- a/deps/v8/src/lookup.h +++ b/deps/v8/src/lookup.h @@ -47,7 +47,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { LookupIterator(Handle<Object> receiver, Handle<Name> name, Configuration configuration = CHECK_ALL) - : configuration_(ComputeConfiguration(configuration, name)), + : configuration_(configuration), state_(NOT_FOUND), property_kind_(DATA), property_encoding_(DESCRIPTOR), @@ -66,7 +66,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { Handle<Name> name, Handle<JSReceiver> holder, Configuration configuration = CHECK_ALL) - : configuration_(ComputeConfiguration(configuration, name)), + : configuration_(configuration), state_(NOT_FOUND), property_kind_(DATA), property_encoding_(DESCRIPTOR), @@ -187,15 +187,6 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { return number_; } - static Configuration ComputeConfiguration( - Configuration configuration, Handle<Name> name) { - if (name->IsOwn()) { - return static_cast<Configuration>(configuration & CHECK_OWN); - } else { - return configuration; - } - } - Configuration configuration_; State state_; bool has_property_; diff --git a/deps/v8/src/math.js b/deps/v8/src/math.js index 13cdb31cdc..f9139c6516 100644 --- a/deps/v8/src/math.js +++ b/deps/v8/src/math.js @@ -347,6 +347,26 @@ function MathExpm1(x) { } } +// ES6 draft 09-27-13, section 20.2.2.20. +// Use Taylor series to approximate. With y = x + 1; +// log(y) at 1 == log(1) + log'(1)(y-1)/1! + log''(1)(y-1)^2/2! + ... +// == 0 + x - x^2/2 + x^3/3 ... +// The closer x is to 0, the fewer terms are required. +function MathLog1p(x) { + if (!IS_NUMBER(x)) x = NonNumberToNumber(x); + var xabs = MathAbs(x); + if (xabs < 1E-7) { + return x * (1 - x * (1/2)); + } else if (xabs < 3E-5) { + return x * (1 - x * (1/2 - x * (1/3))); + } else if (xabs < 7E-3) { + return x * (1 - x * (1/2 - x * (1/3 - x * (1/4 - + x * (1/5 - x * (1/6 - x * (1/7))))))); + } else { // Use regular log if not close enough to 0. + return MathLog(1 + x); + } +} + // ------------------------------------------------------------------- function SetUpMath() { @@ -408,7 +428,7 @@ function SetUpMath() { "fround", MathFroundJS, "clz32", MathClz32, "cbrt", MathCbrt, - "log1p", MathLog1p, // implemented by third_party/fdlibm + "log1p", MathLog1p, "expm1", MathExpm1 )); diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h index 7e1c5b1eb3..b81eeaee5e 100644 --- a/deps/v8/src/objects-inl.h +++ b/deps/v8/src/objects-inl.h @@ -2920,9 +2920,6 @@ FixedArrayBase* Map::GetInitialElements() { GetHeap()->EmptyFixedTypedArrayForMap(this); DCHECK(!GetHeap()->InNewSpace(empty_array)); return empty_array; - } else if (has_dictionary_elements()) { - DCHECK(!GetHeap()->InNewSpace(GetHeap()->empty_slow_element_dictionary())); - return GetHeap()->empty_slow_element_dictionary(); } else { UNREACHABLE(); } @@ -3372,7 +3369,6 @@ bool Name::Equals(Handle<Name> one, Handle<Name> two) { ACCESSORS(Symbol, name, Object, kNameOffset) ACCESSORS(Symbol, flags, Smi, kFlagsOffset) BOOL_ACCESSORS(Symbol, flags, is_private, kPrivateBit) -BOOL_ACCESSORS(Symbol, flags, is_own, kOwnBit) bool String::Equals(String* other) { @@ -6497,10 +6493,6 @@ uint32_t Name::Hash() { return String::cast(this)->ComputeAndSetHash(); } -bool Name::IsOwn() { - return this->IsSymbol() && Symbol::cast(this)->is_own(); -} - StringHasher::StringHasher(int length, uint32_t seed) : length_(length), diff --git a/deps/v8/src/objects-printer.cc b/deps/v8/src/objects-printer.cc index 8fbe2182c5..5acd5e544d 100644 --- a/deps/v8/src/objects-printer.cc +++ b/deps/v8/src/objects-printer.cc @@ -430,8 +430,7 @@ void Symbol::SymbolPrint(OStream& os) { // NOLINT HeapObject::PrintHeader(os, "Symbol"); os << " - hash: " << Hash(); os << "\n - name: " << Brief(name()); - os << "\n - private: " << is_private(); - os << "\n - own: " << is_own(); + os << " - private: " << is_private(); os << "\n"; } diff --git a/deps/v8/src/objects.cc b/deps/v8/src/objects.cc index cfdb9ccb63..a994718bd0 100644 --- a/deps/v8/src/objects.cc +++ b/deps/v8/src/objects.cc @@ -693,7 +693,7 @@ void JSObject::SetNormalizedProperty(Handle<JSObject> object, Handle<Name> name, Handle<Object> value, PropertyDetails details) { - DCHECK(!object->HasFastProperties()); + CHECK(!object->HasFastProperties()); Handle<NameDictionary> property_dictionary(object->property_dictionary()); if (!name->IsUniqueName()) { @@ -3560,11 +3560,6 @@ void JSObject::LookupRealNamedProperty(Handle<Name> name, void JSObject::LookupRealNamedPropertyInPrototypes(Handle<Name> name, LookupResult* result) { - if (name->IsOwn()) { - result->NotFound(); - return; - } - DisallowHeapAllocation no_gc; Isolate* isolate = GetIsolate(); for (PrototypeIterator iter(isolate, this); !iter.IsAtEnd(); iter.Advance()) { @@ -4735,9 +4730,15 @@ void JSObject::MigrateSlowToFast(Handle<JSObject> object, void JSObject::ResetElements(Handle<JSObject> object) { - Heap* heap = object->GetIsolate()->heap(); - CHECK(object->map() != heap->sloppy_arguments_elements_map()); - object->set_elements(object->map()->GetInitialElements()); + Isolate* isolate = object->GetIsolate(); + CHECK(object->map() != isolate->heap()->sloppy_arguments_elements_map()); + if (object->map()->has_dictionary_elements()) { + Handle<SeededNumberDictionary> new_elements = + SeededNumberDictionary::New(isolate, 0); + object->set_elements(*new_elements); + } else { + object->set_elements(object->map()->GetInitialElements()); + } } @@ -6112,7 +6113,7 @@ void JSReceiver::LookupOwn( } js_object->LookupOwnRealNamedProperty(name, result); - if (result->IsFound() || name->IsOwn() || !search_hidden_prototypes) return; + if (result->IsFound() || !search_hidden_prototypes) return; PrototypeIterator iter(GetIsolate(), js_object); if (!iter.GetCurrent()->IsJSReceiver()) return; @@ -6131,10 +6132,6 @@ void JSReceiver::Lookup(Handle<Name> name, LookupResult* result) { !iter.IsAtEnd(); iter.Advance()) { JSReceiver::cast(iter.GetCurrent())->LookupOwn(name, result, false); if (result->IsFound()) return; - if (name->IsOwn()) { - result->NotFound(); - return; - } } result->NotFound(); } @@ -6874,25 +6871,26 @@ MaybeHandle<Object> JSObject::GetAccessor(Handle<JSObject> object, // interceptor calls. AssertNoContextChange ncc(isolate); - // Check access rights if needed. - if (object->IsAccessCheckNeeded() && - !isolate->MayNamedAccess(object, name, v8::ACCESS_HAS)) { - isolate->ReportFailedAccessCheck(object, v8::ACCESS_HAS); - RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object); - return isolate->factory()->undefined_value(); - } - // Make the lookup and include prototypes. uint32_t index = 0; if (name->AsArrayIndex(&index)) { for (PrototypeIterator iter(isolate, object, PrototypeIterator::START_AT_RECEIVER); !iter.IsAtEnd(); iter.Advance()) { - if (PrototypeIterator::GetCurrent(iter)->IsJSObject() && - JSObject::cast(*PrototypeIterator::GetCurrent(iter)) - ->HasDictionaryElements()) { - JSObject* js_object = - JSObject::cast(*PrototypeIterator::GetCurrent(iter)); + Handle<Object> current = PrototypeIterator::GetCurrent(iter); + // Check access rights if needed. + if (current->IsAccessCheckNeeded() && + !isolate->MayNamedAccess(Handle<JSObject>::cast(current), name, + v8::ACCESS_HAS)) { + isolate->ReportFailedAccessCheck(Handle<JSObject>::cast(current), + v8::ACCESS_HAS); + RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object); + return isolate->factory()->undefined_value(); + } + + if (current->IsJSObject() && + Handle<JSObject>::cast(current)->HasDictionaryElements()) { + JSObject* js_object = JSObject::cast(*current); SeededNumberDictionary* dictionary = js_object->element_dictionary(); int entry = dictionary->FindEntry(index); if (entry != SeededNumberDictionary::kNotFound) { @@ -6906,21 +6904,37 @@ MaybeHandle<Object> JSObject::GetAccessor(Handle<JSObject> object, } } } else { - for (PrototypeIterator iter(isolate, object, - PrototypeIterator::START_AT_RECEIVER); - !iter.IsAtEnd(); iter.Advance()) { - LookupResult result(isolate); - JSReceiver::cast(*PrototypeIterator::GetCurrent(iter)) - ->LookupOwn(name, &result); - if (result.IsFound()) { - if (result.IsReadOnly()) return isolate->factory()->undefined_value(); - if (result.IsPropertyCallbacks()) { - Object* obj = result.GetCallbackObject(); - if (obj->IsAccessorPair()) { - return handle(AccessorPair::cast(obj)->GetComponent(component), - isolate); + LookupIterator it(object, name, LookupIterator::SKIP_INTERCEPTOR); + for (; it.IsFound(); it.Next()) { + switch (it.state()) { + case LookupIterator::NOT_FOUND: + case LookupIterator::INTERCEPTOR: + UNREACHABLE(); + + case LookupIterator::ACCESS_CHECK: + if (it.HasAccess(v8::ACCESS_HAS)) continue; + isolate->ReportFailedAccessCheck(it.GetHolder<JSObject>(), + v8::ACCESS_HAS); + RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object); + return isolate->factory()->undefined_value(); + + case LookupIterator::JSPROXY: + return isolate->factory()->undefined_value(); + + case LookupIterator::PROPERTY: + if (!it.HasProperty()) continue; + switch (it.property_kind()) { + case LookupIterator::DATA: + continue; + case LookupIterator::ACCESSOR: { + Handle<Object> maybe_pair = it.GetAccessors(); + if (maybe_pair->IsAccessorPair()) { + return handle( + AccessorPair::cast(*maybe_pair)->GetComponent(component), + isolate); + } + } } - } } } } @@ -11417,10 +11431,7 @@ void Code::Disassemble(const char* name, OStream& os) { // NOLINT os << "Instructions (size = " << instruction_size() << ")\n"; // TODO(svenpanne) The Disassembler should use streams, too! - { - CodeTracer::Scope trace_scope(GetIsolate()->GetCodeTracer()); - Disassembler::Decode(trace_scope.file(), this); - } + Disassembler::Decode(stdout, this); os << "\n"; if (kind() == FUNCTION) { diff --git a/deps/v8/src/objects.h b/deps/v8/src/objects.h index 2bb47e80f5..80442b4608 100644 --- a/deps/v8/src/objects.h +++ b/deps/v8/src/objects.h @@ -8954,9 +8954,6 @@ class Name: public HeapObject { // Conversion. inline bool AsArrayIndex(uint32_t* index); - // Whether name can only name own properties. - inline bool IsOwn(); - DECLARE_CAST(Name) DECLARE_PRINTER(Name) @@ -9032,10 +9029,6 @@ class Symbol: public Name { // [is_private]: whether this is a private symbol. DECL_BOOLEAN_ACCESSORS(is_private) - // [is_own]: whether this is an own symbol, that is, only used to designate - // own properties of objects. - DECL_BOOLEAN_ACCESSORS(is_own) - DECLARE_CAST(Symbol) // Dispatched behavior. @@ -9051,7 +9044,6 @@ class Symbol: public Name { private: static const int kPrivateBit = 0; - static const int kOwnBit = 1; DISALLOW_IMPLICIT_CONSTRUCTORS(Symbol); }; diff --git a/deps/v8/src/ostreams.cc b/deps/v8/src/ostreams.cc index 62304eb908..0f5bec41d2 100644 --- a/deps/v8/src/ostreams.cc +++ b/deps/v8/src/ostreams.cc @@ -3,7 +3,6 @@ // found in the LICENSE file. #include <algorithm> -#include <cctype> #include <cmath> #include "src/base/platform/platform.h" // For isinf/isnan with MSVC @@ -164,21 +163,11 @@ OFStream& OFStream::flush() { } -OStream& operator<<(OStream& os, const AsReversiblyEscapedUC16& c) { - char buf[10]; - const char* format = - (std::isprint(c.value) || std::isspace(c.value)) && c.value != '\\' - ? "%c" - : (c.value <= 0xff) ? "\\x%02x" : "\\u%04x"; - snprintf(buf, sizeof(buf), format, c.value); - return os << buf; -} - - OStream& operator<<(OStream& os, const AsUC16& c) { char buf[10]; - const char* format = - std::isprint(c.value) ? "%c" : (c.value <= 0xff) ? "\\x%02x" : "\\u%04x"; + const char* format = (0x20 <= c.value && c.value <= 0x7F) + ? "%c" + : (c.value <= 0xff) ? "\\x%02x" : "\\u%04x"; snprintf(buf, sizeof(buf), format, c.value); return os << buf; } diff --git a/deps/v8/src/ostreams.h b/deps/v8/src/ostreams.h index 08f53c52ac..f70b6de230 100644 --- a/deps/v8/src/ostreams.h +++ b/deps/v8/src/ostreams.h @@ -117,26 +117,13 @@ class OFStream: public OStream { }; -// Wrappers to disambiguate uint16_t and uc16. +// A wrapper to disambiguate uint16_t and uc16. struct AsUC16 { explicit AsUC16(uint16_t v) : value(v) {} uint16_t value; }; -struct AsReversiblyEscapedUC16 { - explicit AsReversiblyEscapedUC16(uint16_t v) : value(v) {} - uint16_t value; -}; - - -// Writes the given character to the output escaping everything outside of -// printable/space ASCII range. Additionally escapes '\' making escaping -// reversible. -OStream& operator<<(OStream& os, const AsReversiblyEscapedUC16& c); - -// Writes the given character to the output escaping everything outside -// of printable ASCII range. OStream& operator<<(OStream& os, const AsUC16& c); } } // namespace v8::internal diff --git a/deps/v8/src/property-details-inl.h b/deps/v8/src/property-details-inl.h index eaa596f9da..efb27b3191 100644 --- a/deps/v8/src/property-details-inl.h +++ b/deps/v8/src/property-details-inl.h @@ -13,18 +13,6 @@ namespace v8 { namespace internal { -inline bool Representation::CanContainDouble(double value) { - if (IsDouble() || is_more_general_than(Representation::Double())) { - return true; - } - if (IsInt32Double(value)) { - if (IsInteger32()) return true; - if (IsSmi()) return Smi::IsValid(static_cast<int32_t>(value)); - } - return false; -} - - Representation Representation::FromType(Type* type) { DisallowHeapAllocation no_allocation; if (type->Is(Type::None())) return Representation::None(); diff --git a/deps/v8/src/property-details.h b/deps/v8/src/property-details.h index 7eb2e4ea9d..c5f6a8ee13 100644 --- a/deps/v8/src/property-details.h +++ b/deps/v8/src/property-details.h @@ -124,8 +124,6 @@ class Representation { return other.is_more_general_than(*this) || other.Equals(*this); } - bool CanContainDouble(double value); - Representation generalize(Representation other) { if (other.fits_into(*this)) return *this; if (other.is_more_general_than(*this)) return other; diff --git a/deps/v8/src/runtime.cc b/deps/v8/src/runtime.cc index 1fbedc6adc..d29c861017 100644 --- a/deps/v8/src/runtime.cc +++ b/deps/v8/src/runtime.cc @@ -608,17 +608,6 @@ RUNTIME_FUNCTION(Runtime_CreatePrivateSymbol) { } -RUNTIME_FUNCTION(Runtime_CreatePrivateOwnSymbol) { - HandleScope scope(isolate); - DCHECK(args.length() == 1); - CONVERT_ARG_HANDLE_CHECKED(Object, name, 0); - RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); - Handle<Symbol> symbol = isolate->factory()->NewPrivateOwnSymbol(); - if (name->IsString()) symbol->set_name(*name); - return *symbol; -} - - RUNTIME_FUNCTION(Runtime_CreateGlobalPrivateSymbol) { HandleScope scope(isolate); DCHECK(args.length() == 1); @@ -9767,59 +9756,6 @@ bool CodeGenerationFromStringsAllowed(Isolate* isolate, } -// Walk up the stack expecting: -// - Runtime_CompileString -// - JSFunction callee (eval, Function constructor, etc) -// - call() (maybe) -// - apply() (maybe) -// - bind() (maybe) -// - JSFunction caller (maybe) -// -// return true if the caller has the same security token as the callee -// or if an exit frame was hit, in which case allow it through, as it could -// have come through the api. -static bool TokensMatchForCompileString(Isolate* isolate) { - MaybeHandle<JSFunction> callee; - bool exit_handled = true; - bool tokens_match = true; - bool done = false; - for (StackFrameIterator it(isolate); !it.done() && !done; it.Advance()) { - StackFrame* raw_frame = it.frame(); - if (!raw_frame->is_java_script()) { - if (raw_frame->is_exit()) exit_handled = false; - continue; - } - JavaScriptFrame* outer_frame = JavaScriptFrame::cast(raw_frame); - List<FrameSummary> frames(FLAG_max_inlining_levels + 1); - outer_frame->Summarize(&frames); - for (int i = frames.length() - 1; i >= 0 && !done; --i) { - FrameSummary& frame = frames[i]; - Handle<JSFunction> fun = frame.function(); - // Capture the callee function. - if (callee.is_null()) { - callee = fun; - exit_handled = true; - continue; - } - // Exit condition. - Handle<Context> context(callee.ToHandleChecked()->context()); - if (!fun->context()->HasSameSecurityTokenAs(*context)) { - tokens_match = false; - done = true; - continue; - } - // Skip bound functions in correct origin. - if (fun->shared()->bound()) { - exit_handled = true; - continue; - } - done = true; - } - } - return !exit_handled || tokens_match; -} - - RUNTIME_FUNCTION(Runtime_CompileString) { HandleScope scope(isolate); DCHECK(args.length() == 2); @@ -9829,11 +9765,6 @@ RUNTIME_FUNCTION(Runtime_CompileString) { // Extract native context. Handle<Context> context(isolate->native_context()); - // Filter cross security context calls. - if (!TokensMatchForCompileString(isolate)) { - return isolate->heap()->undefined_value(); - } - // Check if native context allows code generation from // strings. Throw an exception if it doesn't. if (context->allow_code_gen_from_strings()->IsFalse() && @@ -10541,10 +10472,10 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { Handle<FixedArrayBase> storage = isolate->factory()->NewFixedDoubleArray(estimate_result_length); int j = 0; + bool failure = false; if (estimate_result_length > 0) { Handle<FixedDoubleArray> double_storage = Handle<FixedDoubleArray>::cast(storage); - bool failure = false; for (int i = 0; i < argument_count; i++) { Handle<Object> obj(elements->get(i), isolate); if (obj->IsSmi()) { @@ -10565,6 +10496,11 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { FixedDoubleArray::cast(array->elements()); for (uint32_t i = 0; i < length; i++) { if (elements->is_the_hole(i)) { + // TODO(jkummerow/verwaest): We could be a bit more clever + // here: Check if there are no elements/getters on the + // prototype chain, and if so, allow creation of a holey + // result array. + // Same thing below (holey smi case). failure = true; break; } @@ -10591,6 +10527,7 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { break; } case FAST_HOLEY_ELEMENTS: + case FAST_ELEMENTS: DCHECK_EQ(0, length); break; default: @@ -10600,14 +10537,17 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { if (failure) break; } } - Handle<JSArray> array = isolate->factory()->NewJSArray(0); - Smi* length = Smi::FromInt(j); - Handle<Map> map; - map = JSObject::GetElementsTransitionMap(array, kind); - array->set_map(*map); - array->set_length(length); - array->set_elements(*storage); - return *array; + if (!failure) { + Handle<JSArray> array = isolate->factory()->NewJSArray(0); + Smi* length = Smi::FromInt(j); + Handle<Map> map; + map = JSObject::GetElementsTransitionMap(array, kind); + array->set_map(*map); + array->set_length(length); + array->set_elements(*storage); + return *array; + } + // In case of failure, fall through. } Handle<FixedArray> storage; diff --git a/deps/v8/src/runtime.h b/deps/v8/src/runtime.h index 4a78edb897..93185cc82f 100644 --- a/deps/v8/src/runtime.h +++ b/deps/v8/src/runtime.h @@ -260,7 +260,6 @@ namespace internal { F(CreateSymbol, 1, 1) \ F(CreatePrivateSymbol, 1, 1) \ F(CreateGlobalPrivateSymbol, 1, 1) \ - F(CreatePrivateOwnSymbol, 1, 1) \ F(NewSymbolWrapper, 1, 1) \ F(SymbolDescription, 1, 1) \ F(SymbolRegistry, 0, 1) \ diff --git a/deps/v8/src/unique.h b/deps/v8/src/unique.h index ffc659fa10..373a5bea8a 100644 --- a/deps/v8/src/unique.h +++ b/deps/v8/src/unique.h @@ -174,7 +174,7 @@ class PrintableUnique : public Unique<T> { return PrintableUnique<T>(zone, reinterpret_cast<Address>(*handle), handle); } - const char* string() const { return string_; } + const char* string() { return string_; } private: const char* string_; diff --git a/deps/v8/src/v8natives.js b/deps/v8/src/v8natives.js index 9612f16f96..1353f885ae 100644 --- a/deps/v8/src/v8natives.js +++ b/deps/v8/src/v8natives.js @@ -1855,9 +1855,7 @@ function FunctionConstructor(arg1) { // length == 1 var global_proxy = %GlobalProxy(global); // Compile the string in the constructor and not a helper so that errors // appear to come from here. - var f = %CompileString(source, true); - if (!IS_FUNCTION(f)) return f; - f = %_CallFunction(global_proxy, f); + var f = %_CallFunction(global_proxy, %CompileString(source, true)); %FunctionMarkNameShouldPrintAsAnonymous(f); return f; } diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc index c6f087d04b..28b9de3a7a 100644 --- a/deps/v8/src/version.cc +++ b/deps/v8/src/version.cc @@ -34,8 +34,8 @@ // system so their names cannot be changed without changing the scripts. #define MAJOR_VERSION 3 #define MINOR_VERSION 28 -#define BUILD_NUMBER 73 -#define PATCH_LEVEL 0 +#define BUILD_NUMBER 71 +#define PATCH_LEVEL 19 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 diff --git a/deps/v8/test/benchmarks/benchmarks.status b/deps/v8/test/benchmarks/benchmarks.status index 1afd5eca24..8dab238b18 100644 --- a/deps/v8/test/benchmarks/benchmarks.status +++ b/deps/v8/test/benchmarks/benchmarks.status @@ -25,11 +25,14 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + [ [ALWAYS, { - # Too slow in Debug mode. - 'octane/mandreel': [PASS, ['mode == debug', SKIP]], + # Too slow in Debug mode. TODO(mstarzinger): Too slow for TF. + 'octane/mandreel': [PASS, NO_VARIANTS, ['mode == debug', SKIP]], # TODO(mstarzinger,ishell): Timeout with TF in predictable mode. 'octane/richards': [PASS, NO_VARIANTS], + # TODO(mstarzinger): Out of mem with TF. + 'octane/zlib': [PASS, NO_VARIANTS], }], # ALWAYS ] diff --git a/deps/v8/test/cctest/compiler/graph-builder-tester.cc b/deps/v8/test/cctest/compiler/graph-builder-tester.cc index fb6e4a28ce..2aaaf89274 100644 --- a/deps/v8/test/cctest/compiler/graph-builder-tester.cc +++ b/deps/v8/test/cctest/compiler/graph-builder-tester.cc @@ -31,7 +31,6 @@ void MachineCallHelper::InitParameters(GraphBuilder* builder, byte* MachineCallHelper::Generate() { DCHECK(parameter_count() == 0 || parameters_ != NULL); - if (!Pipeline::SupportedBackend()) return NULL; if (code_.is_null()) { Zone* zone = graph_->zone(); CompilationInfo info(zone->isolate(), zone); diff --git a/deps/v8/test/cctest/compiler/test-representation-change.cc b/deps/v8/test/cctest/compiler/test-representation-change.cc index 092a5f7d90..d28cf4b4b8 100644 --- a/deps/v8/test/cctest/compiler/test-representation-change.cc +++ b/deps/v8/test/cctest/compiler/test-representation-change.cc @@ -192,11 +192,18 @@ TEST(SingleChanges) { TEST(SignednessInWord32) { RepresentationChangerTester r; - // TODO(titzer): assume that uses of a word32 without a sign mean tInt32. - CheckChange(IrOpcode::kChangeTaggedToInt32, rTagged, rWord32 | tInt32); - CheckChange(IrOpcode::kChangeTaggedToUint32, rTagged, rWord32 | tUint32); - CheckChange(IrOpcode::kChangeInt32ToFloat64, rWord32, rFloat64); - CheckChange(IrOpcode::kChangeFloat64ToInt32, rFloat64, rWord32); + // TODO(titzer): these are currently type errors because the output type is + // not specified. Maybe the RepresentationChanger should assume anything to or + // from {rWord32} is {tInt32}, i.e. signed, if not it is explicitly otherwise? + r.CheckTypeError(rTagged, rWord32 | tInt32); + r.CheckTypeError(rTagged, rWord32 | tUint32); + r.CheckTypeError(rWord32, rFloat64); + r.CheckTypeError(rFloat64, rWord32); + + // CheckChange(IrOpcode::kChangeTaggedToInt32, rTagged, rWord32 | tInt32); + // CheckChange(IrOpcode::kChangeTaggedToUint32, rTagged, rWord32 | tUint32); + // CheckChange(IrOpcode::kChangeInt32ToFloat64, rWord32, rFloat64); + // CheckChange(IrOpcode::kChangeFloat64ToInt32, rFloat64, rWord32); } diff --git a/deps/v8/test/cctest/compiler/test-simplified-lowering.cc b/deps/v8/test/cctest/compiler/test-simplified-lowering.cc index 18f4136b90..6210198156 100644 --- a/deps/v8/test/cctest/compiler/test-simplified-lowering.cc +++ b/deps/v8/test/cctest/compiler/test-simplified-lowering.cc @@ -114,9 +114,9 @@ TEST(RunLoadMap) { t.Return(load); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<JSObject> src = TestObject(); Handle<Map> src_map(src->map()); Object* result = t.Call(*src); // TODO(titzer): raw pointers in call @@ -132,9 +132,9 @@ TEST(RunStoreMap) { t.Return(t.jsgraph.TrueConstant()); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<JSObject> src = TestObject(); Handle<Map> src_map(src->map()); Handle<JSObject> dst = TestObject(); @@ -152,9 +152,9 @@ TEST(RunLoadProperties) { t.Return(load); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<JSObject> src = TestObject(); Handle<FixedArray> src_props(src->properties()); Object* result = t.Call(*src); // TODO(titzer): raw pointers in call @@ -171,9 +171,9 @@ TEST(RunLoadStoreMap) { t.Return(load); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<JSObject> src = TestObject(); Handle<Map> src_map(src->map()); Handle<JSObject> dst = TestObject(); @@ -194,9 +194,9 @@ TEST(RunLoadStoreFixedArrayIndex) { t.Return(load); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<FixedArray> array = t.factory()->NewFixedArray(2); Handle<JSObject> src = TestObject(); Handle<JSObject> dst = TestObject(); @@ -223,9 +223,9 @@ TEST(RunLoadStoreArrayBuffer) { t.Return(t.jsgraph.TrueConstant()); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Handle<JSArrayBuffer> array = t.factory()->NewJSArrayBuffer(); const int array_length = 2 * index; Runtime::SetupArrayBufferAllocatingData(t.isolate(), array, array_length); @@ -407,9 +407,9 @@ class AccessTester : public HandleAndZoneScope { t.StoreElement(access, ptr, t.Int32Constant(to_index), load); t.Return(t.jsgraph.TrueConstant()); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Object* result = t.Call(); CHECK_EQ(t.isolate()->heap()->true_value(), result); } @@ -429,9 +429,9 @@ class AccessTester : public HandleAndZoneScope { t.StoreField(to_access, ptr, load); t.Return(t.jsgraph.TrueConstant()); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Object* result = t.Call(); CHECK_EQ(t.isolate()->heap()->true_value(), result); } @@ -468,9 +468,9 @@ class AccessTester : public HandleAndZoneScope { index = t.environment()->Pop(); t.Return(t.jsgraph.TrueConstant()); t.LowerAllNodes(); - t.GenerateCode(); if (Pipeline::SupportedTarget()) { + t.GenerateCode(); Object* result = t.Call(); CHECK_EQ(t.isolate()->heap()->true_value(), result); } @@ -707,7 +707,7 @@ class TestingGraph : public HandleAndZoneScope, public GraphAndBuilders { Node* tb = graph()->NewNode(common()->IfTrue(), br); Node* fb = graph()->NewNode(common()->IfFalse(), br); Node* m = graph()->NewNode(common()->Merge(2), tb, fb); - NodeProperties::ReplaceControlInput(ret, m); + ret->ReplaceInput(NodeProperties::FirstControlIndex(ret), m); return br; } diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index 9ddc9db71d..2ac657d7f9 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -22736,32 +22736,6 @@ TEST(ScriptNameAndLineNumber) { } -Local<v8::Context> call_eval_context; -Local<v8::Function> call_eval_bound_function; -static void CallEval(const v8::FunctionCallbackInfo<v8::Value>& args) { - v8::Context::Scope scope(call_eval_context); - args.GetReturnValue().Set( - call_eval_bound_function->Call(call_eval_context->Global(), 0, NULL)); -} - - -TEST(CrossActivationEval) { - LocalContext env; - v8::Isolate* isolate = env->GetIsolate(); - v8::HandleScope scope(isolate); - { - call_eval_context = v8::Context::New(isolate); - v8::Context::Scope scope(call_eval_context); - call_eval_bound_function = - Local<Function>::Cast(CompileRun("eval.bind(this, '1')")); - } - env->Global()->Set(v8_str("CallEval"), - v8::FunctionTemplate::New(isolate, CallEval)->GetFunction()); - Local<Value> result = CompileRun("CallEval();"); - CHECK_EQ(result, v8::Integer::New(isolate, 1)); -} - - void SourceURLHelper(const char* source, const char* expected_source_url, const char* expected_source_mapping_url) { Local<Script> script = v8_compile(source); diff --git a/deps/v8/test/cctest/test-spaces.cc b/deps/v8/test/cctest/test-spaces.cc index 0062094400..3c59610065 100644 --- a/deps/v8/test/cctest/test-spaces.cc +++ b/deps/v8/test/cctest/test-spaces.cc @@ -203,6 +203,28 @@ static void VerifyMemoryChunk(Isolate* isolate, } +TEST(Regress3540) { + Isolate* isolate = CcTest::i_isolate(); + isolate->InitializeLoggingAndCounters(); + Heap* heap = isolate->heap(); + CHECK(heap->ConfigureHeapDefault()); + MemoryAllocator* memory_allocator = new MemoryAllocator(isolate); + CHECK( + memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize())); + TestMemoryAllocatorScope test_allocator_scope(isolate, memory_allocator); + CodeRange* code_range = new CodeRange(isolate); + const size_t code_range_size = 4 * MB; + if (!code_range->SetUp(code_range_size)) return; + size_t allocated_size; + Address result; + for (int i = 0; i < 5; i++) { + result = code_range->AllocateRawMemory( + code_range_size - MB, code_range_size - MB, &allocated_size); + CHECK((result != NULL) == (i == 0)); + } +} + + static unsigned int Pseudorandom() { static uint32_t lo = 2345; lo = 18273 * (lo & 0xFFFFF) + (lo >> 16); diff --git a/deps/v8/test/compiler-unittests/DEPS b/deps/v8/test/compiler-unittests/DEPS index 8aa02395f5..cf66c5ad70 100644 --- a/deps/v8/test/compiler-unittests/DEPS +++ b/deps/v8/test/compiler-unittests/DEPS @@ -1,6 +1,5 @@ include_rules = [ "+src", - "+testing/gtest", - "+testing/gtest-type-names.h", "+testing/gmock", + "+testing/gtest", ] diff --git a/deps/v8/test/compiler-unittests/arm/instruction-selector-arm-unittest.cc b/deps/v8/test/compiler-unittests/arm/instruction-selector-arm-unittest.cc index b781ac8f9f..3e51722ed3 100644 --- a/deps/v8/test/compiler-unittests/arm/instruction-selector-arm-unittest.cc +++ b/deps/v8/test/compiler-unittests/arm/instruction-selector-arm-unittest.cc @@ -11,7 +11,7 @@ namespace compiler { class InstructionSelectorARMTest : public InstructionSelectorTest {}; -TARGET_TEST_F(InstructionSelectorARMTest, Int32AddP) { +COMPILER_TEST_F(InstructionSelectorARMTest, Int32AddP) { StreamBuilder m(this, kMachineWord32, kMachineWord32, kMachineWord32); m.Return(m.Int32Add(m.Parameter(0), m.Parameter(1))); Stream s = m.Build(); diff --git a/deps/v8/test/compiler-unittests/change-lowering-unittest.cc b/deps/v8/test/compiler-unittests/change-lowering-unittest.cc deleted file mode 100644 index 68de48013c..0000000000 --- a/deps/v8/test/compiler-unittests/change-lowering-unittest.cc +++ /dev/null @@ -1,257 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "src/compiler/change-lowering.h" -#include "src/compiler/common-operator.h" -#include "src/compiler/graph.h" -#include "src/compiler/node-properties-inl.h" -#include "src/compiler/simplified-operator.h" -#include "src/factory.h" -#include "test/compiler-unittests/compiler-unittests.h" -#include "test/compiler-unittests/node-matchers.h" -#include "testing/gtest-type-names.h" - -using testing::_; - -namespace v8 { -namespace internal { -namespace compiler { - -template <typename T> -class ChangeLoweringTest : public CompilerTest { - public: - static const size_t kPointerSize = sizeof(T); - - explicit ChangeLoweringTest(int num_parameters = 1) - : graph_(zone()), common_(zone()), simplified_(zone()) { - graph()->SetStart(graph()->NewNode(common()->Start(num_parameters))); - } - virtual ~ChangeLoweringTest() {} - - protected: - Node* Parameter(int32_t index = 0) { - return graph()->NewNode(common()->Parameter(index), graph()->start()); - } - - Reduction Reduce(Node* node) { - CompilationInfo info(isolate(), zone()); - Linkage linkage(&info); - ChangeLowering<kPointerSize> reducer(graph(), &linkage); - return reducer.Reduce(node); - } - - Graph* graph() { return &graph_; } - Factory* factory() const { return isolate()->factory(); } - CommonOperatorBuilder* common() { return &common_; } - SimplifiedOperatorBuilder* simplified() { return &simplified_; } - - PrintableUnique<HeapObject> true_unique() { - return PrintableUnique<HeapObject>::CreateImmovable( - zone(), factory()->true_value()); - } - PrintableUnique<HeapObject> false_unique() { - return PrintableUnique<HeapObject>::CreateImmovable( - zone(), factory()->false_value()); - } - - private: - Graph graph_; - CommonOperatorBuilder common_; - SimplifiedOperatorBuilder simplified_; -}; - - -typedef ::testing::Types<int32_t, int64_t> ChangeLoweringTypes; -TYPED_TEST_CASE(ChangeLoweringTest, ChangeLoweringTypes); - - -TARGET_TYPED_TEST(ChangeLoweringTest, ChangeBitToBool) { - Node* val = this->Parameter(0); - Node* node = - this->graph()->NewNode(this->simplified()->ChangeBitToBool(), val); - Reduction reduction = this->Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - Node* phi = reduction.replacement(); - EXPECT_THAT(phi, IsPhi(IsHeapConstant(this->true_unique()), - IsHeapConstant(this->false_unique()), _)); - - Node* merge = NodeProperties::GetControlInput(phi); - ASSERT_EQ(IrOpcode::kMerge, merge->opcode()); - - Node* if_true = NodeProperties::GetControlInput(merge, 0); - ASSERT_EQ(IrOpcode::kIfTrue, if_true->opcode()); - - Node* if_false = NodeProperties::GetControlInput(merge, 1); - ASSERT_EQ(IrOpcode::kIfFalse, if_false->opcode()); - - Node* branch = NodeProperties::GetControlInput(if_true); - EXPECT_EQ(branch, NodeProperties::GetControlInput(if_false)); - EXPECT_THAT(branch, IsBranch(val, this->graph()->start())); -} - - -TARGET_TYPED_TEST(ChangeLoweringTest, StringAdd) { - Node* node = this->graph()->NewNode(this->simplified()->StringAdd(), - this->Parameter(0), this->Parameter(1)); - Reduction reduction = this->Reduce(node); - EXPECT_FALSE(reduction.Changed()); -} - - -class ChangeLowering32Test : public ChangeLoweringTest<int32_t> { - public: - virtual ~ChangeLowering32Test() {} -}; - - -TARGET_TEST_F(ChangeLowering32Test, ChangeBoolToBit) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeBoolToBit(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - EXPECT_THAT(reduction.replacement(), - IsWord32Equal(val, IsHeapConstant(true_unique()))); -} - - -TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - Node* phi = reduction.replacement(); - ASSERT_EQ(IrOpcode::kPhi, phi->opcode()); - - Node* smi = NodeProperties::GetValueInput(phi, 1); - ASSERT_THAT(smi, IsProjection(0, IsInt32AddWithOverflow(val, val))); - - Node* heap_number = NodeProperties::GetValueInput(phi, 0); - ASSERT_EQ(IrOpcode::kCall, heap_number->opcode()); - - Node* merge = NodeProperties::GetControlInput(phi); - ASSERT_EQ(IrOpcode::kMerge, merge->opcode()); - - const int32_t kValueOffset = HeapNumber::kValueOffset - kHeapObjectTag; - EXPECT_THAT(NodeProperties::GetControlInput(merge, 0), - IsStore(kMachineFloat64, kNoWriteBarrier, heap_number, - IsInt32Constant(kValueOffset), - IsChangeInt32ToFloat64(val), _, heap_number)); - - Node* if_true = NodeProperties::GetControlInput(heap_number); - ASSERT_EQ(IrOpcode::kIfTrue, if_true->opcode()); - - Node* if_false = NodeProperties::GetControlInput(merge, 1); - ASSERT_EQ(IrOpcode::kIfFalse, if_false->opcode()); - - Node* branch = NodeProperties::GetControlInput(if_true); - EXPECT_EQ(branch, NodeProperties::GetControlInput(if_false)); - EXPECT_THAT(branch, - IsBranch(IsProjection(1, IsInt32AddWithOverflow(val, val)), - graph()->start())); -} - - -TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToFloat64) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeTaggedToFloat64(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - const int32_t kShiftAmount = - kSmiTagSize + SmiTagging<kPointerSize>::kSmiShiftSize; - const int32_t kValueOffset = HeapNumber::kValueOffset - kHeapObjectTag; - Node* phi = reduction.replacement(); - ASSERT_THAT( - phi, IsPhi(IsLoad(kMachineFloat64, val, IsInt32Constant(kValueOffset), _), - IsChangeInt32ToFloat64( - IsWord32Sar(val, IsInt32Constant(kShiftAmount))), - _)); - - Node* merge = NodeProperties::GetControlInput(phi); - ASSERT_EQ(IrOpcode::kMerge, merge->opcode()); - - Node* if_true = NodeProperties::GetControlInput(merge, 0); - ASSERT_EQ(IrOpcode::kIfTrue, if_true->opcode()); - - Node* if_false = NodeProperties::GetControlInput(merge, 1); - ASSERT_EQ(IrOpcode::kIfFalse, if_false->opcode()); - - Node* branch = NodeProperties::GetControlInput(if_true); - EXPECT_EQ(branch, NodeProperties::GetControlInput(if_false)); - STATIC_ASSERT(kSmiTag == 0); - STATIC_ASSERT(kSmiTagSize == 1); - EXPECT_THAT(branch, IsBranch(IsWord32And(val, IsInt32Constant(kSmiTagMask)), - graph()->start())); -} - - -class ChangeLowering64Test : public ChangeLoweringTest<int64_t> { - public: - virtual ~ChangeLowering64Test() {} -}; - - -TARGET_TEST_F(ChangeLowering64Test, ChangeBoolToBit) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeBoolToBit(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - EXPECT_THAT(reduction.replacement(), - IsWord64Equal(val, IsHeapConstant(true_unique()))); -} - - -TARGET_TEST_F(ChangeLowering64Test, ChangeInt32ToTagged) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - const int32_t kShiftAmount = - kSmiTagSize + SmiTagging<kPointerSize>::kSmiShiftSize; - EXPECT_THAT(reduction.replacement(), - IsWord64Shl(val, IsInt32Constant(kShiftAmount))); -} - - -TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToFloat64) { - Node* val = Parameter(0); - Node* node = graph()->NewNode(simplified()->ChangeTaggedToFloat64(), val); - Reduction reduction = Reduce(node); - ASSERT_TRUE(reduction.Changed()); - - const int32_t kShiftAmount = - kSmiTagSize + SmiTagging<kPointerSize>::kSmiShiftSize; - const int32_t kValueOffset = HeapNumber::kValueOffset - kHeapObjectTag; - Node* phi = reduction.replacement(); - ASSERT_THAT( - phi, IsPhi(IsLoad(kMachineFloat64, val, IsInt32Constant(kValueOffset), _), - IsChangeInt32ToFloat64(IsConvertInt64ToInt32( - IsWord64Sar(val, IsInt32Constant(kShiftAmount)))), - _)); - - Node* merge = NodeProperties::GetControlInput(phi); - ASSERT_EQ(IrOpcode::kMerge, merge->opcode()); - - Node* if_true = NodeProperties::GetControlInput(merge, 0); - ASSERT_EQ(IrOpcode::kIfTrue, if_true->opcode()); - - Node* if_false = NodeProperties::GetControlInput(merge, 1); - ASSERT_EQ(IrOpcode::kIfFalse, if_false->opcode()); - - Node* branch = NodeProperties::GetControlInput(if_true); - EXPECT_EQ(branch, NodeProperties::GetControlInput(if_false)); - STATIC_ASSERT(kSmiTag == 0); - STATIC_ASSERT(kSmiTagSize == 1); - EXPECT_THAT(branch, IsBranch(IsWord64And(val, IsInt32Constant(kSmiTagMask)), - graph()->start())); -} - -} // namespace compiler -} // namespace internal -} // namespace v8 diff --git a/deps/v8/test/compiler-unittests/compiler-unittests.gyp b/deps/v8/test/compiler-unittests/compiler-unittests.gyp index c1de0c4235..e7048de7ee 100644 --- a/deps/v8/test/compiler-unittests/compiler-unittests.gyp +++ b/deps/v8/test/compiler-unittests/compiler-unittests.gyp @@ -20,11 +20,8 @@ '../..', ], 'sources': [ ### gcmole(all) ### - 'change-lowering-unittest.cc', 'compiler-unittests.cc', 'instruction-selector-unittest.cc', - 'node-matchers.cc', - 'node-matchers.h', ], 'conditions': [ ['v8_target_arch=="arm"', { diff --git a/deps/v8/test/compiler-unittests/compiler-unittests.h b/deps/v8/test/compiler-unittests/compiler-unittests.h index 091b137066..ad8e99cb1e 100644 --- a/deps/v8/test/compiler-unittests/compiler-unittests.h +++ b/deps/v8/test/compiler-unittests/compiler-unittests.h @@ -13,33 +13,23 @@ namespace v8 { namespace internal { namespace compiler { -// The TARGET_TEST(Case, Name) macro works just like +// The COMPILER_TEST(Case, Name) macro works just like // TEST(Case, Name), except that the test is disabled // if the platform is not a supported TurboFan target. #if V8_TURBOFAN_TARGET -#define TARGET_TEST(Case, Name) TEST(Case, Name) +#define COMPILER_TEST(Case, Name) TEST(Case, Name) #else -#define TARGET_TEST(Case, Name) TEST(Case, DISABLED_##Name) +#define COMPILER_TEST(Case, Name) TEST(Case, DISABLED_##Name) #endif -// The TARGET_TEST_F(Case, Name) macro works just like +// The COMPILER_TEST_F(Case, Name) macro works just like // TEST_F(Case, Name), except that the test is disabled // if the platform is not a supported TurboFan target. #if V8_TURBOFAN_TARGET -#define TARGET_TEST_F(Case, Name) TEST_F(Case, Name) +#define COMPILER_TEST_F(Case, Name) TEST_F(Case, Name) #else -#define TARGET_TEST_F(Case, Name) TEST_F(Case, DISABLED_##Name) -#endif - - -// The TARGET_TYPED_TEST(Case, Name) macro works just like -// TYPED_TEST(Case, Name), except that the test is disabled -// if the platform is not a supported TurboFan target. -#if V8_TURBOFAN_TARGET -#define TARGET_TYPED_TEST(Case, Name) TYPED_TEST(Case, Name) -#else -#define TARGET_TYPED_TEST(Case, Name) TYPED_TEST(Case, DISABLED_##Name) +#define COMPILER_TEST_F(Case, Name) TEST_F(Case, DISABLED_##Name) #endif @@ -51,6 +41,7 @@ class CompilerTest : public ::testing::Test { Isolate* isolate() const { return reinterpret_cast<Isolate*>(isolate_); } Zone* zone() { return &zone_; } + protected: static void SetUpTestCase(); static void TearDownTestCase(); diff --git a/deps/v8/test/compiler-unittests/instruction-selector-unittest.cc b/deps/v8/test/compiler-unittests/instruction-selector-unittest.cc index 70186529af..a862f98f10 100644 --- a/deps/v8/test/compiler-unittests/instruction-selector-unittest.cc +++ b/deps/v8/test/compiler-unittests/instruction-selector-unittest.cc @@ -62,7 +62,7 @@ InstructionSelectorTest::Stream InstructionSelectorTest::StreamBuilder::Build( } -TARGET_TEST_F(InstructionSelectorTest, ReturnP) { +COMPILER_TEST_F(InstructionSelectorTest, ReturnP) { StreamBuilder m(this, kMachineWord32, kMachineWord32); m.Return(m.Parameter(0)); Stream s = m.Build(kAllInstructions); @@ -74,7 +74,7 @@ TARGET_TEST_F(InstructionSelectorTest, ReturnP) { } -TARGET_TEST_F(InstructionSelectorTest, ReturnImm) { +COMPILER_TEST_F(InstructionSelectorTest, ReturnImm) { StreamBuilder m(this, kMachineWord32); m.Return(m.Int32Constant(0)); Stream s = m.Build(kAllInstructions); diff --git a/deps/v8/test/compiler-unittests/node-matchers.cc b/deps/v8/test/compiler-unittests/node-matchers.cc deleted file mode 100644 index d580834113..0000000000 --- a/deps/v8/test/compiler-unittests/node-matchers.cc +++ /dev/null @@ -1,454 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "test/compiler-unittests/node-matchers.h" - -#include <ostream> // NOLINT(readability/streams) - -#include "src/compiler/node-properties-inl.h" - -using testing::MakeMatcher; -using testing::MatcherInterface; -using testing::MatchResultListener; -using testing::StringMatchResultListener; - -namespace v8 { -namespace internal { - -// TODO(bmeurer): Find a new home for these functions. -template <typename T> -inline std::ostream& operator<<(std::ostream& os, - const PrintableUnique<T>& value) { - return os << value.string(); -} - -namespace compiler { - -namespace { - -template <typename T> -bool PrintMatchAndExplain(const T& value, const char* value_name, - const Matcher<T>& value_matcher, - MatchResultListener* listener) { - StringMatchResultListener value_listener; - if (!value_matcher.MatchAndExplain(value, &value_listener)) { - *listener << "whose " << value_name << " " << value << " doesn't match"; - if (value_listener.str() != "") { - *listener << ", " << value_listener.str(); - } - return false; - } - return true; -} - - -class NodeMatcher : public MatcherInterface<Node*> { - public: - explicit NodeMatcher(IrOpcode::Value opcode) : opcode_(opcode) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - *os << "is a " << IrOpcode::Mnemonic(opcode_) << " node"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - if (node == NULL) { - *listener << "which is NULL"; - return false; - } - if (node->opcode() != opcode_) { - *listener << "whose opcode is " << IrOpcode::Mnemonic(node->opcode()); - return false; - } - return true; - } - - private: - const IrOpcode::Value opcode_; -}; - - -class IsBranchMatcher V8_FINAL : public NodeMatcher { - public: - IsBranchMatcher(const Matcher<Node*>& value_matcher, - const Matcher<Node*>& control_matcher) - : NodeMatcher(IrOpcode::kBranch), - value_matcher_(value_matcher), - control_matcher_(control_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose value ("; - value_matcher_.DescribeTo(os); - *os << ") and control ("; - control_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), - "value", value_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetControlInput(node), - "control", control_matcher_, listener)); - } - - private: - const Matcher<Node*> value_matcher_; - const Matcher<Node*> control_matcher_; -}; - - -template <typename T> -class IsConstantMatcher V8_FINAL : public NodeMatcher { - public: - IsConstantMatcher(IrOpcode::Value opcode, const Matcher<T>& value_matcher) - : NodeMatcher(opcode), value_matcher_(value_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose value ("; - value_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(OpParameter<T>(node), "value", value_matcher_, - listener)); - } - - private: - const Matcher<T> value_matcher_; -}; - - -class IsPhiMatcher V8_FINAL : public NodeMatcher { - public: - IsPhiMatcher(const Matcher<Node*>& value0_matcher, - const Matcher<Node*>& value1_matcher, - const Matcher<Node*>& control_matcher) - : NodeMatcher(IrOpcode::kPhi), - value0_matcher_(value0_matcher), - value1_matcher_(value1_matcher), - control_matcher_(control_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose value0 ("; - value0_matcher_.DescribeTo(os); - *os << "), value1 ("; - value1_matcher_.DescribeTo(os); - *os << ") and control ("; - control_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), - "value0", value0_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), - "value1", value1_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetControlInput(node), - "control", control_matcher_, listener)); - } - - private: - const Matcher<Node*> value0_matcher_; - const Matcher<Node*> value1_matcher_; - const Matcher<Node*> control_matcher_; -}; - - -class IsProjectionMatcher V8_FINAL : public NodeMatcher { - public: - IsProjectionMatcher(const Matcher<int32_t>& index_matcher, - const Matcher<Node*>& base_matcher) - : NodeMatcher(IrOpcode::kProjection), - index_matcher_(index_matcher), - base_matcher_(base_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose index ("; - index_matcher_.DescribeTo(os); - *os << ") and base ("; - base_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(OpParameter<int32_t>(node), "index", - index_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", - base_matcher_, listener)); - } - - private: - const Matcher<int32_t> index_matcher_; - const Matcher<Node*> base_matcher_; -}; - - -class IsLoadMatcher V8_FINAL : public NodeMatcher { - public: - IsLoadMatcher(const Matcher<MachineType>& type_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& effect_matcher) - : NodeMatcher(IrOpcode::kLoad), - type_matcher_(type_matcher), - base_matcher_(base_matcher), - index_matcher_(index_matcher), - effect_matcher_(effect_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose type ("; - type_matcher_.DescribeTo(os); - *os << "), base ("; - base_matcher_.DescribeTo(os); - *os << "), index ("; - index_matcher_.DescribeTo(os); - *os << ") and effect ("; - effect_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(OpParameter<MachineType>(node), "type", - type_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", - base_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), - "index", index_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", - effect_matcher_, listener)); - } - - private: - const Matcher<MachineType> type_matcher_; - const Matcher<Node*> base_matcher_; - const Matcher<Node*> index_matcher_; - const Matcher<Node*> effect_matcher_; -}; - - -class IsStoreMatcher V8_FINAL : public NodeMatcher { - public: - IsStoreMatcher(const Matcher<MachineType>& type_matcher, - const Matcher<WriteBarrierKind> write_barrier_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& value_matcher, - const Matcher<Node*>& effect_matcher, - const Matcher<Node*>& control_matcher) - : NodeMatcher(IrOpcode::kStore), - type_matcher_(type_matcher), - write_barrier_matcher_(write_barrier_matcher), - base_matcher_(base_matcher), - index_matcher_(index_matcher), - value_matcher_(value_matcher), - effect_matcher_(effect_matcher), - control_matcher_(control_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose type ("; - type_matcher_.DescribeTo(os); - *os << "), write barrier ("; - write_barrier_matcher_.DescribeTo(os); - *os << "), base ("; - base_matcher_.DescribeTo(os); - *os << "), index ("; - index_matcher_.DescribeTo(os); - *os << "), value ("; - value_matcher_.DescribeTo(os); - *os << "), effect ("; - effect_matcher_.DescribeTo(os); - *os << ") and control ("; - control_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(OpParameter<StoreRepresentation>(node).rep, - "type", type_matcher_, listener) && - PrintMatchAndExplain( - OpParameter<StoreRepresentation>(node).write_barrier_kind, - "write barrier", write_barrier_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", - base_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), - "index", index_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2), - "value", value_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", - effect_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetControlInput(node), - "control", control_matcher_, listener)); - } - - private: - const Matcher<MachineType> type_matcher_; - const Matcher<WriteBarrierKind> write_barrier_matcher_; - const Matcher<Node*> base_matcher_; - const Matcher<Node*> index_matcher_; - const Matcher<Node*> value_matcher_; - const Matcher<Node*> effect_matcher_; - const Matcher<Node*> control_matcher_; -}; - - -class IsBinopMatcher V8_FINAL : public NodeMatcher { - public: - IsBinopMatcher(IrOpcode::Value opcode, const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher) - : NodeMatcher(opcode), - lhs_matcher_(lhs_matcher), - rhs_matcher_(rhs_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose lhs ("; - lhs_matcher_.DescribeTo(os); - *os << ") and rhs ("; - rhs_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "lhs", - lhs_matcher_, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "rhs", - rhs_matcher_, listener)); - } - - private: - const Matcher<Node*> lhs_matcher_; - const Matcher<Node*> rhs_matcher_; -}; - - -class IsUnopMatcher V8_FINAL : public NodeMatcher { - public: - IsUnopMatcher(IrOpcode::Value opcode, const Matcher<Node*>& input_matcher) - : NodeMatcher(opcode), input_matcher_(input_matcher) {} - - virtual void DescribeTo(std::ostream* os) const V8_OVERRIDE { - NodeMatcher::DescribeTo(os); - *os << " whose input ("; - input_matcher_.DescribeTo(os); - *os << ")"; - } - - virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const - V8_OVERRIDE { - return (NodeMatcher::MatchAndExplain(node, listener) && - PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), - "input", input_matcher_, listener)); - } - - private: - const Matcher<Node*> input_matcher_; -}; - -} - - -Matcher<Node*> IsBranch(const Matcher<Node*>& value_matcher, - const Matcher<Node*>& control_matcher) { - return MakeMatcher(new IsBranchMatcher(value_matcher, control_matcher)); -} - - -Matcher<Node*> IsInt32Constant(const Matcher<int32_t>& value_matcher) { - return MakeMatcher( - new IsConstantMatcher<int32_t>(IrOpcode::kInt32Constant, value_matcher)); -} - - -Matcher<Node*> IsHeapConstant( - const Matcher<PrintableUnique<HeapObject> >& value_matcher) { - return MakeMatcher(new IsConstantMatcher<PrintableUnique<HeapObject> >( - IrOpcode::kHeapConstant, value_matcher)); -} - - -Matcher<Node*> IsPhi(const Matcher<Node*>& value0_matcher, - const Matcher<Node*>& value1_matcher, - const Matcher<Node*>& merge_matcher) { - return MakeMatcher( - new IsPhiMatcher(value0_matcher, value1_matcher, merge_matcher)); -} - - -Matcher<Node*> IsProjection(const Matcher<int32_t>& index_matcher, - const Matcher<Node*>& base_matcher) { - return MakeMatcher(new IsProjectionMatcher(index_matcher, base_matcher)); -} - - -Matcher<Node*> IsLoad(const Matcher<MachineType>& type_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& effect_matcher) { - return MakeMatcher(new IsLoadMatcher(type_matcher, base_matcher, - index_matcher, effect_matcher)); -} - - -Matcher<Node*> IsStore(const Matcher<MachineType>& type_matcher, - const Matcher<WriteBarrierKind>& write_barrier_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& value_matcher, - const Matcher<Node*>& effect_matcher, - const Matcher<Node*>& control_matcher) { - return MakeMatcher(new IsStoreMatcher( - type_matcher, write_barrier_matcher, base_matcher, index_matcher, - value_matcher, effect_matcher, control_matcher)); -} - - -#define IS_BINOP_MATCHER(Name) \ - Matcher<Node*> Is##Name(const Matcher<Node*>& lhs_matcher, \ - const Matcher<Node*>& rhs_matcher) { \ - return MakeMatcher( \ - new IsBinopMatcher(IrOpcode::k##Name, lhs_matcher, rhs_matcher)); \ - } -IS_BINOP_MATCHER(Word32And) -IS_BINOP_MATCHER(Word32Sar) -IS_BINOP_MATCHER(Word32Equal) -IS_BINOP_MATCHER(Word64And) -IS_BINOP_MATCHER(Word64Sar) -IS_BINOP_MATCHER(Word64Shl) -IS_BINOP_MATCHER(Word64Equal) -IS_BINOP_MATCHER(Int32AddWithOverflow) -#undef IS_BINOP_MATCHER - - -#define IS_UNOP_MATCHER(Name) \ - Matcher<Node*> Is##Name(const Matcher<Node*>& input_matcher) { \ - return MakeMatcher(new IsUnopMatcher(IrOpcode::k##Name, input_matcher)); \ - } -IS_UNOP_MATCHER(ConvertInt64ToInt32) -IS_UNOP_MATCHER(ChangeInt32ToFloat64) -#undef IS_UNOP_MATCHER - -} // namespace compiler -} // namespace internal -} // namespace v8 diff --git a/deps/v8/test/compiler-unittests/node-matchers.h b/deps/v8/test/compiler-unittests/node-matchers.h deleted file mode 100644 index 09da07a7f5..0000000000 --- a/deps/v8/test/compiler-unittests/node-matchers.h +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ -#define V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ - -#include "src/compiler/machine-operator.h" -#include "testing/gmock/include/gmock/gmock.h" - -namespace v8 { -namespace internal { - -// Forward declarations. -class HeapObject; -template <class T> -class PrintableUnique; - -namespace compiler { - -// Forward declarations. -class Node; - -using testing::Matcher; - -Matcher<Node*> IsBranch(const Matcher<Node*>& value_matcher, - const Matcher<Node*>& control_matcher); -Matcher<Node*> IsHeapConstant( - const Matcher<PrintableUnique<HeapObject> >& value_matcher); -Matcher<Node*> IsInt32Constant(const Matcher<int32_t>& value_matcher); -Matcher<Node*> IsPhi(const Matcher<Node*>& value0_matcher, - const Matcher<Node*>& value1_matcher, - const Matcher<Node*>& merge_matcher); -Matcher<Node*> IsProjection(const Matcher<int32_t>& index_matcher, - const Matcher<Node*>& base_matcher); - -Matcher<Node*> IsLoad(const Matcher<MachineType>& type_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& effect_matcher); -Matcher<Node*> IsStore(const Matcher<MachineType>& type_matcher, - const Matcher<WriteBarrierKind>& write_barrier_matcher, - const Matcher<Node*>& base_matcher, - const Matcher<Node*>& index_matcher, - const Matcher<Node*>& value_matcher, - const Matcher<Node*>& effect_matcher, - const Matcher<Node*>& control_matcher); -Matcher<Node*> IsWord32And(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord32Sar(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord32Equal(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord64And(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord64Shl(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord64Sar(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsWord64Equal(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsInt32AddWithOverflow(const Matcher<Node*>& lhs_matcher, - const Matcher<Node*>& rhs_matcher); -Matcher<Node*> IsConvertInt64ToInt32(const Matcher<Node*>& input_matcher); -Matcher<Node*> IsChangeInt32ToFloat64(const Matcher<Node*>& input_matcher); - -} // namespace compiler -} // namespace internal -} // namespace v8 - -#endif // V8_COMPILER_UNITTESTS_NODE_MATCHERS_H_ diff --git a/deps/v8/test/mjsunit/cross-realm-filtering.js b/deps/v8/test/mjsunit/cross-realm-filtering.js index 902cceb58f..9523e8cc1a 100644 --- a/deps/v8/test/mjsunit/cross-realm-filtering.js +++ b/deps/v8/test/mjsunit/cross-realm-filtering.js @@ -70,72 +70,3 @@ assertSame(Realm.shared.caller_1, Realm.shared.result_1); Realm.eval(realms[0], script); assertSame(Realm.shared.caller_0, Realm.shared.result_0); assertSame(null, Realm.shared.result_1); - - -// Check function constructor. -var ctor_script = "Function.constructor"; -var ctor_a_script = - "(function() { return Function.constructor.apply(this, ['return 1;']); })"; -var ctor_b_script = "Function.constructor.bind(this, 'return 1;')"; -var ctor_c_script = - "(function() { return Function.constructor.call(this, 'return 1;'); })"; -Realm.shared = { - ctor_0 : Realm.eval(realms[0], ctor_script), - ctor_1 : Realm.eval(realms[1], ctor_script), - ctor_a_0 : Realm.eval(realms[0], ctor_a_script), - ctor_a_1 : Realm.eval(realms[1], ctor_a_script), - ctor_b_0 : Realm.eval(realms[0], ctor_b_script), - ctor_b_1 : Realm.eval(realms[1], ctor_b_script), - ctor_c_0 : Realm.eval(realms[0], ctor_c_script), - ctor_c_1 : Realm.eval(realms[1], ctor_c_script), -} - -var script_0 = " \ - var ctor_0 = Realm.shared.ctor_0; \ - Realm.shared.direct_0 = ctor_0('return 1'); \ - Realm.shared.indirect_0 = (function() { return ctor_0('return 1;'); })(); \ - Realm.shared.apply_0 = ctor_0.apply(this, ['return 1']); \ - Realm.shared.bind_0 = ctor_0.bind(this, 'return 1')(); \ - Realm.shared.call_0 = ctor_0.call(this, 'return 1'); \ - Realm.shared.a_0 = Realm.shared.ctor_a_0(); \ - Realm.shared.b_0 = Realm.shared.ctor_b_0(); \ - Realm.shared.c_0 = Realm.shared.ctor_c_0(); \ -"; - -script = script_0 + script_0.replace(/_0/g, "_1"); - -Realm.eval(realms[0], script); -assertSame(1, Realm.shared.direct_0()); -assertSame(1, Realm.shared.indirect_0()); -assertSame(1, Realm.shared.apply_0()); -assertSame(1, Realm.shared.bind_0()); -assertSame(1, Realm.shared.call_0()); -assertSame(1, Realm.shared.a_0()); -assertSame(1, Realm.shared.b_0()); -assertSame(1, Realm.shared.c_0()); -assertSame(undefined, Realm.shared.direct_1); -assertSame(undefined, Realm.shared.indirect_1); -assertSame(undefined, Realm.shared.apply_1); -assertSame(undefined, Realm.shared.bind_1); -assertSame(undefined, Realm.shared.call_1); -assertSame(1, Realm.shared.a_1()); -assertSame(undefined, Realm.shared.b_1); -assertSame(1, Realm.shared.c_1()); - -Realm.eval(realms[1], script); -assertSame(undefined, Realm.shared.direct_0); -assertSame(undefined, Realm.shared.indirect_0); -assertSame(undefined, Realm.shared.apply_0); -assertSame(undefined, Realm.shared.bind_0); -assertSame(undefined, Realm.shared.call_0); -assertSame(1, Realm.shared.a_0()); -assertSame(undefined, Realm.shared.b_0); -assertSame(1, Realm.shared.c_1()); -assertSame(1, Realm.shared.direct_1()); -assertSame(1, Realm.shared.indirect_1()); -assertSame(1, Realm.shared.apply_1()); -assertSame(1, Realm.shared.bind_1()); -assertSame(1, Realm.shared.call_1()); -assertSame(1, Realm.shared.a_1()); -assertSame(1, Realm.shared.b_1()); -assertSame(1, Realm.shared.c_1()); diff --git a/deps/v8/test/mjsunit/es6/array-iterator.js b/deps/v8/test/mjsunit/es6/array-iterator.js index 63a7415b96..099c94d6ac 100644 --- a/deps/v8/test/mjsunit/es6/array-iterator.js +++ b/deps/v8/test/mjsunit/es6/array-iterator.js @@ -45,11 +45,8 @@ function assertHasOwnProperty(object, name, attrs) { function TestArrayPrototype() { assertHasOwnProperty(Array.prototype, 'entries', DONT_ENUM); - assertHasOwnProperty(Array.prototype, 'values', DONT_ENUM); assertHasOwnProperty(Array.prototype, 'keys', DONT_ENUM); assertHasOwnProperty(Array.prototype, Symbol.iterator, DONT_ENUM); - - assertEquals(Array.prototype.values, Array.prototype[Symbol.iterator]); } TestArrayPrototype(); @@ -61,7 +58,7 @@ function assertIteratorResult(value, done, result) { function TestValues() { var array = ['a', 'b', 'c']; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); assertIteratorResult('a', false, iterator.next()); assertIteratorResult('b', false, iterator.next()); assertIteratorResult('c', false, iterator.next()); @@ -75,7 +72,7 @@ TestValues(); function TestValuesMutate() { var array = ['a', 'b', 'c']; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); assertIteratorResult('a', false, iterator.next()); assertIteratorResult('b', false, iterator.next()); assertIteratorResult('c', false, iterator.next()); @@ -142,17 +139,17 @@ TestEntriesMutate(); function TestArrayIteratorPrototype() { var array = []; - var iterator = array.values(); + var iterator = array.keys(); var ArrayIteratorPrototype = iterator.__proto__; - assertEquals(ArrayIteratorPrototype, array.values().__proto__); + assertEquals(ArrayIteratorPrototype, array[Symbol.iterator]().__proto__); assertEquals(ArrayIteratorPrototype, array.keys().__proto__); assertEquals(ArrayIteratorPrototype, array.entries().__proto__); assertEquals(Object.prototype, ArrayIteratorPrototype.__proto__); - assertEquals('Array Iterator', %_ClassOf(array.values())); + assertEquals('Array Iterator', %_ClassOf(array[Symbol.iterator]())); assertEquals('Array Iterator', %_ClassOf(array.keys())); assertEquals('Array Iterator', %_ClassOf(array.entries())); @@ -169,7 +166,7 @@ function TestForArrayValues() { var buffer = []; var array = [0, 'a', true, false, null, /* hole */, undefined, NaN]; var i = 0; - for (var value of array.values()) { + for (var value of array[Symbol.iterator]()) { buffer[i++] = value; } @@ -242,7 +239,7 @@ TestForArrayValues(); function TestNonOwnSlots() { var array = [0]; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); var object = {__proto__: iterator}; assertThrows(function() { diff --git a/deps/v8/test/mjsunit/es6/math-log1p.js b/deps/v8/test/mjsunit/es6/math-log1p.js index 5468444fda..01f353368f 100644 --- a/deps/v8/test/mjsunit/es6/math-log1p.js +++ b/deps/v8/test/mjsunit/es6/math-log1p.js @@ -6,16 +6,16 @@ assertTrue(isNaN(Math.log1p(NaN))); assertTrue(isNaN(Math.log1p(function() {}))); assertTrue(isNaN(Math.log1p({ toString: function() { return NaN; } }))); assertTrue(isNaN(Math.log1p({ valueOf: function() { return "abc"; } }))); -assertEquals(Infinity, 1/Math.log1p(0)); -assertEquals(-Infinity, 1/Math.log1p(-0)); -assertEquals(Infinity, Math.log1p(Infinity)); -assertEquals(-Infinity, Math.log1p(-1)); +assertEquals("Infinity", String(1/Math.log1p(0))); +assertEquals("-Infinity", String(1/Math.log1p(-0))); +assertEquals("Infinity", String(Math.log1p(Infinity))); +assertEquals("-Infinity", String(Math.log1p(-1))); assertTrue(isNaN(Math.log1p(-2))); assertTrue(isNaN(Math.log1p(-Infinity))); -for (var x = 1E300; x > 1E16; x *= 0.8) { +for (var x = 1E300; x > 1E-1; x *= 0.8) { var expected = Math.log(x + 1); - assertEqualsDelta(expected, Math.log1p(x), expected * 1E-16); + assertEqualsDelta(expected, Math.log1p(x), expected * 1E-14); } // Values close to 0: @@ -35,36 +35,5 @@ function log1p(x) { for (var x = 1E-1; x > 1E-300; x *= 0.8) { var expected = log1p(x); - assertEqualsDelta(expected, Math.log1p(x), expected * 1E-16); + assertEqualsDelta(expected, Math.log1p(x), expected * 1E-14); } - -// Issue 3481. -assertEquals(6.9756137364252422e-03, - Math.log1p(8070450532247929/Math.pow(2,60))); - -// Tests related to the fdlibm implementation. -// Test largest double value. -assertEquals(709.782712893384, Math.log1p(1.7976931348623157e308)); -// Test small values. -assertEquals(Math.pow(2, -55), Math.log1p(Math.pow(2, -55))); -assertEquals(9.313225741817976e-10, Math.log1p(Math.pow(2, -30))); -// Cover various code paths. -// -.2929 < x < .41422, k = 0 -assertEquals(-0.2876820724517809, Math.log1p(-0.25)); -assertEquals(0.22314355131420976, Math.log1p(0.25)); -// 0.41422 < x < 9.007e15 -assertEquals(2.3978952727983707, Math.log1p(10)); -// x > 9.007e15 -assertEquals(36.841361487904734, Math.log1p(10e15)); -// Normalize u. -assertEquals(37.08337388996168, Math.log1p(12738099905822720)); -// Normalize u/2. -assertEquals(37.08336444902049, Math.log1p(12737979646738432)); -// |f| = 0, k != 0 -assertEquals(1.3862943611198906, Math.log1p(3)); -// |f| != 0, k != 0 -assertEquals(1.3862945995384413, Math.log1p(3 + Math.pow(2,-20))); -// final if-clause: k = 0 -assertEquals(0.5596157879354227, Math.log1p(0.75)); -// final if-clause: k != 0 -assertEquals(0.8109302162163288, Math.log1p(1.25)); diff --git a/deps/v8/test/mjsunit/es6/typed-array-iterator.js b/deps/v8/test/mjsunit/es6/typed-array-iterator.js index a2e4906c19..9903b0abae 100644 --- a/deps/v8/test/mjsunit/es6/typed-array-iterator.js +++ b/deps/v8/test/mjsunit/es6/typed-array-iterator.js @@ -21,9 +21,9 @@ function TestTypedArrayPrototype(constructor) { assertFalse(constructor.prototype.propertyIsEnumerable(Symbol.iterator)); assertEquals(Array.prototype.entries, constructor.prototype.entries); - assertEquals(Array.prototype.values, constructor.prototype.values); + assertEquals(Array.prototype[Symbol.iterator], constructor.prototype.values); assertEquals(Array.prototype.keys, constructor.prototype.keys); - assertEquals(Array.prototype.values, constructor.prototype[Symbol.iterator]); + assertEquals(Array.prototype[Symbol.iterator], constructor.prototype[Symbol.iterator]); } constructors.forEach(TestTypedArrayPrototype); diff --git a/deps/v8/test/mjsunit/mjsunit.status b/deps/v8/test/mjsunit/mjsunit.status index 228d243643..a9addc9b03 100644 --- a/deps/v8/test/mjsunit/mjsunit.status +++ b/deps/v8/test/mjsunit/mjsunit.status @@ -299,9 +299,6 @@ ############################################################################## ['arch == arm64 or arch == android_arm64', { - # arm64 TF timeout. - 'regress/regress-1257': [PASS, TIMEOUT], - # Requires bigger stack size in the Genesis and if stack size is increased, # the test requires too much time to run. However, the problem test covers # should be platform-independent. @@ -348,7 +345,7 @@ 'bit-not': [PASS, SLOW], 'compiler/alloc-number': [PASS, SLOW], 'compiler/osr-assert': [PASS, SLOW], - 'compiler/osr-warm': [PASS, TIMEOUT, SLOW], + 'compiler/osr-warm': [PASS, SLOW], 'compiler/osr-with-args': [PASS, SLOW], 'debug-scopes': [PASS, SLOW], 'generated-transition-stub': [PASS, SLOW], diff --git a/deps/v8/test/mjsunit/own-symbols.js b/deps/v8/test/mjsunit/own-symbols.js deleted file mode 100644 index 588a032aa8..0000000000 --- a/deps/v8/test/mjsunit/own-symbols.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Flags: --allow-natives-syntax - -var s = %CreatePrivateOwnSymbol("s"); -var s1 = %CreatePrivateOwnSymbol("s1"); - -function TestSimple() { - var p = {} - p[s] = "moo"; - - var o = Object.create(p); - - assertEquals(undefined, o[s]); - assertEquals("moo", p[s]); - - o[s] = "bow-wow"; - assertEquals("bow-wow", o[s]); - assertEquals("moo", p[s]); -} - -TestSimple(); - - -function TestICs() { - var p = {} - p[s] = "moo"; - - - var o = Object.create(p); - o[s1] = "bow-wow"; - function checkNonOwn(o) { - assertEquals(undefined, o[s]); - assertEquals("bow-wow", o[s1]); - } - - checkNonOwn(o); - - // Test monomorphic/optimized. - for (var i = 0; i < 1000; i++) { - checkNonOwn(o); - } - - // Test non-monomorphic. - for (var i = 0; i < 1000; i++) { - var oNew = Object.create(p); - oNew["s" + i] = i; - oNew[s1] = "bow-wow"; - checkNonOwn(oNew); - } -} - -TestICs(); diff --git a/deps/v8/test/mjsunit/regress/regress-3116.js b/deps/v8/test/mjsunit/regress/regress-3116.js new file mode 100644 index 0000000000..ca55ccc888 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-3116.js @@ -0,0 +1,314 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function timezone(tz) { + var str = (new Date(2014, 0, 10)).toString(); + if (tz == "CET") { + return str == "Fri Jan 10 2014 00:00:00 GMT+0100 (CET)"; + } + if (tz == "BRT") { + return str == "Fri Jan 10 2014 00:00:00 GMT-0200 (BRST)"; + } + if (tz == "PST") { + return str == "Fri Jan 10 2014 00:00:00 GMT-0800 (PST)"; + } + return false; +} + +if (timezone("CET")) { + assertEquals("Sat Mar 29 2014 22:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 22, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 21:59:00 GMT", + (new Date(2014, 2, 29, 22, 59)).toUTCString()); + assertEquals("Sat Mar 29 2014 23:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 23, 0)).toString()); + assertEquals("Sat, 29 Mar 2014 22:00:00 GMT", + (new Date(2014, 2, 29, 23, 0)).toUTCString()); + assertEquals("Sat Mar 29 2014 23:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 23, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 22:59:00 GMT", + (new Date(2014, 2, 29, 23, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 00:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 0, 0)).toString()); + assertEquals("Sat, 29 Mar 2014 23:00:00 GMT", + (new Date(2014, 2, 30, 0, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 00:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 0, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 23:59:00 GMT", + (new Date(2014, 2, 30, 0, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 01:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 1, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 00:00:00 GMT", + (new Date(2014, 2, 30, 1, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 01:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 1, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 00:59:00 GMT", + (new Date(2014, 2, 30, 1, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 2, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 01:00:00 GMT", + (new Date(2014, 2, 30, 2, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 2, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 01:59:00 GMT", + (new Date(2014, 2, 30, 2, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 3, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 01:00:00 GMT", + (new Date(2014, 2, 30, 3, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 3, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 01:59:00 GMT", + (new Date(2014, 2, 30, 3, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 04:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 4, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 02:00:00 GMT", + (new Date(2014, 2, 30, 4, 0)).toUTCString()); + assertEquals("Sat Oct 25 2014 22:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 22, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 20:59:00 GMT", + (new Date(2014, 9, 25, 22, 59)).toUTCString()); + assertEquals("Sat Oct 25 2014 23:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 23, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 21:00:00 GMT", + (new Date(2014, 9, 25, 23, 0)).toUTCString()); + assertEquals("Sat Oct 25 2014 23:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 23, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 21:59:00 GMT", + (new Date(2014, 9, 25, 23, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 00:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 0, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 22:00:00 GMT", + (new Date(2014, 9, 26, 0, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 00:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 0, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 22:59:00 GMT", + (new Date(2014, 9, 26, 0, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 01:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 1, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 23:00:00 GMT", + (new Date(2014, 9, 26, 1, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 01:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 1, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 23:59:00 GMT", + (new Date(2014, 9, 26, 1, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 02:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 2, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 00:00:00 GMT", + (new Date(2014, 9, 26, 2, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 02:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 2, 59)).toString()); + assertEquals("Sun, 26 Oct 2014 00:59:00 GMT", + (new Date(2014, 9, 26, 2, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 03:00:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 3, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 02:00:00 GMT", + (new Date(2014, 9, 26, 3, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 03:59:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 3, 59)).toString()); + assertEquals("Sun, 26 Oct 2014 02:59:00 GMT", + (new Date(2014, 9, 26, 3, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 04:00:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 4, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 26, 4, 0)).toUTCString()); +} + +if (timezone("BRT")) { + assertEquals("Sat Oct 18 2014 22:59:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 22, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 01:59:00 GMT", + (new Date(2014, 9, 18, 22, 59)).toUTCString()); + assertEquals("Sat Oct 18 2014 23:00:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 23, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 02:00:00 GMT", + (new Date(2014, 9, 18, 23, 0)).toUTCString()); + assertEquals("Sat Oct 18 2014 23:59:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 23, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 02:59:00 GMT", + (new Date(2014, 9, 18, 23, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 0, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 19, 0, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 0, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 03:59:00 GMT", + (new Date(2014, 9, 19, 0, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 1, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 19, 1, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 1, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 03:59:00 GMT", + (new Date(2014, 9, 19, 1, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 02:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 2, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 04:00:00 GMT", + (new Date(2014, 9, 19, 2, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 02:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 2, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 04:59:00 GMT", + (new Date(2014, 9, 19, 2, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 03:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 3, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 05:00:00 GMT", + (new Date(2014, 9, 19, 3, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 03:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 3, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 05:59:00 GMT", + (new Date(2014, 9, 19, 3, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 04:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 4, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 06:00:00 GMT", + (new Date(2014, 9, 19, 4, 0)).toUTCString()); + assertEquals("Sat Feb 15 2014 22:59:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 22, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 00:59:00 GMT", + (new Date(2014, 1, 15, 22, 59)).toUTCString()); + assertEquals("Sat Feb 15 2014 23:00:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 23, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 01:00:00 GMT", + (new Date(2014, 1, 15, 23, 0)).toUTCString()); + assertEquals("Sat Feb 15 2014 23:59:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 23, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 01:59:00 GMT", + (new Date(2014, 1, 15, 23, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 00:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 0, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 03:00:00 GMT", + (new Date(2014, 1, 16, 0, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 00:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 0, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 03:59:00 GMT", + (new Date(2014, 1, 16, 0, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 01:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 1, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 04:00:00 GMT", + (new Date(2014, 1, 16, 1, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 01:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 1, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 04:59:00 GMT", + (new Date(2014, 1, 16, 1, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 02:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 2, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 05:00:00 GMT", + (new Date(2014, 1, 16, 2, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 02:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 2, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 05:59:00 GMT", + (new Date(2014, 1, 16, 2, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 03:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 3, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 06:00:00 GMT", + (new Date(2014, 1, 16, 3, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 03:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 3, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 06:59:00 GMT", + (new Date(2014, 1, 16, 3, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 04:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 4, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 07:00:00 GMT", + (new Date(2014, 1, 16, 4, 0)).toUTCString()); +} + +if (timezone("PST")) { + assertEquals("Sat Mar 08 2014 22:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 22, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 06:59:00 GMT", + (new Date(2014, 2, 8, 22, 59)).toUTCString()); + assertEquals("Sat Mar 08 2014 23:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 23, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 07:00:00 GMT", + (new Date(2014, 2, 8, 23, 0)).toUTCString()); + assertEquals("Sat Mar 08 2014 23:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 23, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 07:59:00 GMT", + (new Date(2014, 2, 8, 23, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 00:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 0, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 08:00:00 GMT", + (new Date(2014, 2, 9, 0, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 00:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 0, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 08:59:00 GMT", + (new Date(2014, 2, 9, 0, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 01:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 1, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 09:00:00 GMT", + (new Date(2014, 2, 9, 1, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 01:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 1, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 09:59:00 GMT", + (new Date(2014, 2, 9, 1, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 2, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 10:00:00 GMT", + (new Date(2014, 2, 9, 2, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 2, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 10:59:00 GMT", + (new Date(2014, 2, 9, 2, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 3, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 10:00:00 GMT", + (new Date(2014, 2, 9, 3, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 3, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 10:59:00 GMT", + (new Date(2014, 2, 9, 3, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 04:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 4, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 11:00:00 GMT", + (new Date(2014, 2, 9, 4, 0)).toUTCString()); + assertEquals("Sat Nov 01 2014 22:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 22, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 05:59:00 GMT", + (new Date(2014, 10, 1, 22, 59)).toUTCString()); + assertEquals("Sat Nov 01 2014 23:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 23, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 06:00:00 GMT", + (new Date(2014, 10, 1, 23, 0)).toUTCString()); + assertEquals("Sat Nov 01 2014 23:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 23, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 06:59:00 GMT", + (new Date(2014, 10, 1, 23, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 00:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 0, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 07:00:00 GMT", + (new Date(2014, 10, 2, 0, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 00:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 0, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 07:59:00 GMT", + (new Date(2014, 10, 2, 0, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 01:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 1, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 08:00:00 GMT", + (new Date(2014, 10, 2, 1, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 01:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 1, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 08:59:00 GMT", + (new Date(2014, 10, 2, 1, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 02:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 2, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 10:00:00 GMT", + (new Date(2014, 10, 2, 2, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 02:59:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 2, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 10:59:00 GMT", + (new Date(2014, 10, 2, 2, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 03:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 3, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 11:00:00 GMT", + (new Date(2014, 10, 2, 3, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 03:59:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 3, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 11:59:00 GMT", + (new Date(2014, 10, 2, 3, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 04:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 4, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 12:00:00 GMT", + (new Date(2014, 10, 2, 4, 0)).toUTCString()); +} diff --git a/deps/v8/test/mjsunit/regress/regress-411210.js b/deps/v8/test/mjsunit/regress/regress-411210.js new file mode 100644 index 0000000000..2dbc5ff70c --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-411210.js @@ -0,0 +1,22 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --allow-natives-syntax --gc-interval=439 --random-seed=-423594851 + +var __v_3; +function __f_2() { + var __v_1 = new Array(3); + __v_1[0] = 10; + __v_1[1] = 15.5; + __v_3 = __f_2(); + __v_1[2] = 20; + return __v_1; +} + +try { + for (var __v_2 = 0; __v_2 < 3; ++__v_2) { + __v_3 = __f_2(); + } +} +catch (e) { } diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-403409.js b/deps/v8/test/mjsunit/regress/regress-crbug-403409.js new file mode 100644 index 0000000000..ffd100b468 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-crbug-403409.js @@ -0,0 +1,18 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +Array.prototype[0] = 777; +var kElements = 10; + +var input_array = []; +for (var i = 1; i < kElements; i++) { + input_array[i] = 0.5; +} +var output_array = input_array.concat(0.5); + +assertEquals(kElements + 1, output_array.length); +assertEquals(777, output_array[0]); +for (var j = 1; j < kElements; j++) { + assertEquals(0.5, output_array[j]); +} diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-407946.js b/deps/v8/test/mjsunit/regress/regress-crbug-407946.js new file mode 100644 index 0000000000..d5687cca34 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-crbug-407946.js @@ -0,0 +1,12 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --allow-natives-syntax + +function f(n) { return [0].indexOf((n - n) + 0); } + +assertEquals(0, f(.1)); +assertEquals(0, f(.1)); +%OptimizeFunctionOnNextCall(f); +assertEquals(0, f(.1)); diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-423687.js b/deps/v8/test/mjsunit/regress/regress-crbug-423687.js new file mode 100644 index 0000000000..60003527e8 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-crbug-423687.js @@ -0,0 +1,10 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --allow-natives-syntax + +var json = '{"a":{"c":2.1,"d":0},"b":{"c":7,"1024":8}}'; +var data = JSON.parse(json); + +data.b.c++; diff --git a/deps/v8/test/mjsunit/regress/regress-force-constant-representation.js b/deps/v8/test/mjsunit/regress/regress-force-constant-representation.js new file mode 100644 index 0000000000..4ec2a6a799 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-force-constant-representation.js @@ -0,0 +1,18 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --allow-natives-syntax + +// Test push double as tagged. +var a = [{}]; +function f(a) { + a.push(Infinity); +} + +f(a); +f(a); +f(a); +%OptimizeFunctionOnNextCall(f); +f(a); +assertEquals([{}, Infinity, Infinity, Infinity, Infinity], a); diff --git a/deps/v8/test/mjsunit/regress/regress-json-parse-index.js b/deps/v8/test/mjsunit/regress/regress-json-parse-index.js new file mode 100644 index 0000000000..d1a785aaf1 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-json-parse-index.js @@ -0,0 +1,6 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +var o = JSON.parse('{"\\u0030":100}'); +assertEquals(100, o[0]); diff --git a/deps/v8/test/mjsunit/regress/regress-reset-dictionary-elements.js b/deps/v8/test/mjsunit/regress/regress-reset-dictionary-elements.js new file mode 100644 index 0000000000..d3d093ec09 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-reset-dictionary-elements.js @@ -0,0 +1,14 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +var a = []; +a[10000] = 1; +a.length = 0; +a[1] = 1; +a.length = 0; +assertEquals(undefined, a[1]); + +var o = {}; +Object.freeze(o); +assertEquals(undefined, o[1]); diff --git a/deps/v8/test/mjsunit/runtime-gen/createprivateownsymbol.js b/deps/v8/test/mjsunit/runtime-gen/createprivateownsymbol.js deleted file mode 100644 index 74548287c1..0000000000 --- a/deps/v8/test/mjsunit/runtime-gen/createprivateownsymbol.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY -// Flags: --allow-natives-syntax --harmony --harmony-proxies -var arg0 = "foo"; -%CreatePrivateOwnSymbol(arg0); diff --git a/deps/v8/test/mjsunit/tools/profviz-test.log b/deps/v8/test/mjsunit/tools/profviz-test.log new file mode 100644 index 0000000000..fe4b7ffcbc --- /dev/null +++ b/deps/v8/test/mjsunit/tools/profviz-test.log @@ -0,0 +1,2613 @@ +shared-library,"/usr/local/google/home/yangguo/v8/out/ia32.release/d8",0x08048000,0x08557000 +shared-library,"2506f000-25070000",0x2506f000,0x25070000 +shared-library,"31e60000-31e61000",0x31e60000,0x31e61000 +shared-library,"35dff000-35e00000",0x35dff000,0x35e00000 +shared-library,"48218000-48219000",0x48218000,0x48219000 +shared-library,"4af7d000-4af7e000",0x4af7d000,0x4af7e000 +shared-library,"55bf2000-55bf3000",0x55bf2000,0x55bf3000 +shared-library,"/lib/i386-linux-gnu/libc-2.15.so",0xf7450000,0xf75f3000 +shared-library,"/lib/i386-linux-gnu/libpthread-2.15.so",0xf75f9000,0xf7610000 +shared-library,"/lib/i386-linux-gnu/libgcc_s.so.1",0xf7614000,0xf7630000 +shared-library,"/lib/i386-linux-gnu/libm-2.15.so",0xf7633000,0xf765d000 +shared-library,"/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16",0xf765f000,0xf7737000 +shared-library,"[vdso]",0xf776d000,0xf776e000 +shared-library,"/lib/i386-linux-gnu/ld-2.15.so",0xf776e000,0xf778e000 +profiler,"begin",1 +timer-event-start,"V8.GCCompactor",2425 +timer-event-start,"V8.External",2458 +timer-event-end,"V8.External",2468 +timer-event-start,"V8.External",3810 +timer-event-end,"V8.External",3830 +timer-event-end,"V8.GCCompactor",3840 +code-creation,Stub,2,0x2b80a000,484,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80a200,622,"CEntryStub" +code-creation,Stub,2,0x2b80a480,540,"ArrayNArgumentsConstructorStub" +code-creation,Stub,13,0x2b80a6a0,116,"CompareICStub" +code-creation,Stub,2,0x2b80a720,1428,"RecordWriteStub" +code-creation,Stub,2,0x2b80acc0,97,"StoreBufferOverflowStub" +code-creation,Stub,2,0x2b80ad40,611,"RecordWriteStub" +code-creation,Stub,2,0x2b80afc0,76,"InterruptStub" +code-creation,Stub,13,0x2b80b020,104,"CompareICStub" +code-creation,Stub,2,0x2b80b0a0,130,"ArgumentsAccessStub" +code-creation,Stub,2,0x2b80b140,160,"FastNewContextStub" +code-creation,Stub,2,0x2b80b1e0,79,"StubFailureTrampolineStub" +code-creation,Stub,2,0x2b80b240,704,"ArraySingleArgumentConstructorStub" +code-creation,Stub,14,0x2b80b500,93,"CompareNilICStub" +code-creation,Stub,2,0x2b80b560,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80b6a0,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80b940,740,"NameDictionaryLookupStub" +code-creation,Stub,13,0x2b80bc40,156,"CompareICStub" +code-creation,Stub,2,0x2b80bce0,611,"RecordWriteStub" +code-creation,Stub,13,0x2b80bf60,122,"CompareICStub" +code-creation,Stub,2,0x2b80bfe0,217,"CreateAllocationSiteStub" +code-creation,Stub,2,0x2b80c0c0,1456,"RecordWriteStub" +code-creation,Stub,2,0x2b80c680,245,"StoreArrayLiteralElementStub" +code-creation,Stub,2,0x2b80c780,1448,"RecordWriteStub" +code-creation,Stub,2,0x2b80cd40,1471,"StringAddStub" +code-creation,Stub,2,0x2b80d300,1448,"RecordWriteStub" +code-creation,Stub,2,0x2b80d8c0,1453,"RecordWriteStub" +code-creation,Stub,12,0x2b80de80,146,"BinaryOpStub" +code-creation,Stub,2,0x2b80df20,640,"InternalArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80e1a0,517,"ArrayConstructorStub" +code-creation,Stub,2,0x2b80e3c0,305,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e500,305,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e640,349,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e7a0,349,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e900,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80ea40,680,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80ed00,692,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80efc0,704,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80f280,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80f520,488,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80f720,540,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80f940,432,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80fb00,432,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80fcc0,1453,"RecordWriteStub" +code-creation,Stub,2,0x2b810280,400,"InternalArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b810420,611,"RecordWriteStub" +code-creation,Stub,2,0x2b8106a0,213,"JSEntryStub" +code-creation,Stub,13,0x2b810780,104,"CompareICStub" +code-creation,Stub,12,0x2b810800,124,"BinaryOpStub" +code-creation,Stub,2,0x2b810880,1447,"StringAddStub" +code-creation,Stub,2,0x2b810e40,640,"InternalArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b8110c0,400,"InternalArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b811260,261,"FastCloneShallowArrayStub" +code-creation,Stub,12,0x2b811380,88,"BinaryOpStub" +code-creation,Stub,2,0x2b8113e0,76,"StackCheckStub" +code-creation,Stub,2,0x2b811440,1437,"RecordWriteStub" +code-creation,Stub,2,0x2b8119e0,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b811b20,331,"CallFunctionStub" +code-creation,Builtin,3,0x2b811c80,174,"A builtin from the snapshot" +code-creation,Stub,14,0x2b811d40,124,"CompareNilICStub" +code-creation,Stub,2,0x2b811dc0,1420,"RecordWriteStub" +code-creation,Stub,13,0x2b812360,104,"CompareICStub" +code-creation,Stub,2,0x2b8123e0,76,"LoadFieldStub" +code-creation,Stub,13,0x2b812440,104,"CompareICStub" +code-creation,Stub,2,0x2b8124c0,195,"NumberToStringStub" +code-creation,Stub,15,0x2b8125a0,148,"ToBooleanStub" +code-creation,Stub,2,0x2b812640,351,"ArgumentsAccessStub" +code-creation,Stub,2,0x2b8127a0,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b812a40,1420,"RecordWriteStub" +code-creation,Stub,12,0x2b812fe0,133,"BinaryOpStub" +code-creation,Stub,2,0x2b813080,1664,"StringAddStub" +code-creation,Stub,2,0x2b813700,1661,"StringAddStub" +code-creation,Stub,2,0x2b813d80,472,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b813f60,80,"StubFailureTrampolineStub" +code-creation,Stub,13,0x2b813fc0,104,"CompareICStub" +code-creation,Stub,2,0x2b814040,331,"CallFunctionStub" +code-creation,Stub,2,0x2b8141a0,660,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b814440,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b8149e0,146,"BinaryOpStub" +code-creation,Stub,2,0x2b814a80,271,"CallConstructStub" +code-creation,Stub,15,0x2b814ba0,136,"ToBooleanStub" +code-creation,Stub,2,0x2b814c40,468,"ArrayNArgumentsConstructorStub" +code-creation,Stub,15,0x2b814e20,128,"ToBooleanStub" +code-creation,Stub,2,0x2b814ea0,163,"FastNewContextStub" +code-creation,Stub,2,0x2b814f60,1425,"RecordWriteStub" +code-creation,LoadIC,5,0x2b815500,145,"A load IC from the snapshot" +code-creation,Builtin,3,0x2b8155a0,83,"A builtin from the snapshot" +code-creation,Stub,12,0x2b815600,88,"BinaryOpStub" +code-creation,Stub,2,0x2b815660,1433,"RecordWriteStub" +code-creation,Stub,2,0x2b815c00,331,"CallFunctionStub" +code-creation,Stub,13,0x2b815d60,104,"CompareICStub" +code-creation,Stub,2,0x2b815de0,304,"FastNewClosureStub" +code-creation,Stub,2,0x2b815f20,285,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b816040,1433,"RecordWriteStub" +code-creation,Stub,2,0x2b8165e0,233,"InternalArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b8166e0,740,"NameDictionaryLookupStub" +code-creation,Stub,2,0x2b8169e0,740,"NameDictionaryLookupStub" +code-creation,Stub,12,0x2b816ce0,88,"BinaryOpStub" +code-creation,Stub,2,0x2b816d40,216,"StringCompareStub" +code-creation,Stub,15,0x2b816e20,93,"ToBooleanStub" +code-creation,Stub,12,0x2b816e80,88,"BinaryOpStub" +code-creation,Stub,2,0x2b816ee0,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b817480,155,"BinaryOpStub" +code-creation,Stub,2,0x2b817520,169,"InternalArrayConstructorStub" +code-creation,Stub,2,0x2b8175e0,233,"InternalArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b8176e0,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b817c80,88,"BinaryOpStub" +code-creation,Stub,2,0x2b817ce0,328,"KeyedLoadElementStub" +code-creation,Stub,2,0x2b817e40,1461,"RecordWriteStub" +code-creation,Stub,2,0x2b818400,98,"ToNumberStub" +code-creation,Stub,13,0x2b818480,122,"CompareICStub" +code-creation,Stub,12,0x2b818500,124,"BinaryOpStub" +code-creation,Stub,2,0x2b818580,148,"CallConstructStub" +code-creation,Stub,13,0x2b818620,491,"CompareICStub" +code-creation,Stub,2,0x2b818820,213,"JSEntryStub" +code-creation,CallIC,7,0x2b818900,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8189c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818a80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818b40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818c00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818cc0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818d80,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818e40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818f00,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818fc0,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819080,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819140,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819200,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8192c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819380,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819440,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819500,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8195c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819680,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819740,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819800,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8198c0,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819980,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819a40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819b00,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819bc0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819c80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819d40,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819e00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819ec0,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819f80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a040,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a100,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a1c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a280,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a340,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a400,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a4c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a580,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a640,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a700,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a7c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a880,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a940,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81aa00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81aac0,180,"A call IC from the snapshot" +code-creation,Builtin,3,0x2b81ab80,107,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ac00,105,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ac80,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ace0,432,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81afc0,101,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b81b1a0,83,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b81bf00,83,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b81c680,84,"A store IC from the snapshot" +code-creation,Builtin,3,0x2b8262e0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826340,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8263a0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826400,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826460,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8264c0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826520,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826580,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8265e0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826640,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8266a0,80,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826700,80,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826760,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8267c0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826820,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826880,75,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8268e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826960,491,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826b60,406,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826d00,157,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826da0,131,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826e40,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826ec0,107,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826f40,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826fe0,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827080,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827120,94,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827180,91,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8271e0,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827240,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8272a0,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827300,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827360,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8273c0,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827420,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827480,84,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b8274e0,83,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827540,313,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827680,266,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b8277a0,80,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827800,83,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827860,83,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b8278c0,896,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827c40,499,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827e40,144,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827ee0,216,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b827fc0,365,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828140,293,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828280,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8282e0,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828340,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8283a0,84,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828400,365,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828580,293,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8286c0,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828720,82,"A store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b828780,84,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b8287e0,2082,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b829020,84,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b829080,2082,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b8298c0,286,"A keyed store IC from the snapshot" +code-creation,Builtin,3,0x2b8299e0,355,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829b60,416,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829d00,376,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829e80,388,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a020,78,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a080,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a0e0,357,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a260,359,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a3e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a460,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a4e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a560,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a5e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a660,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a6e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a760,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a7e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a860,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a8e0,104,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a960,106,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a9e0,110,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82aa60,112,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b82aae0,106,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b82ab60,106,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b82abe0,108,"A store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b82ac60,108,"A keyed store IC from the snapshot" +code-creation,Stub,14,0x2b82ace0,104,"CallFunctionStub" +code-creation,Builtin,3,0x2b82ad60,65,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82adc0,93,"A builtin from the snapshot" +timer-event-start,"V8.GCCompactor",6301 +timer-event-start,"V8.External",6312 +timer-event-end,"V8.External",6321 +timer-event-start,"V8.External",7418 +timer-event-end,"V8.External",7436 +timer-event-end,"V8.GCCompactor",7446 +code-creation,LazyCompile,3,0x2b81ac80,77,"Empty :1",0x4420e5cc, +code-creation,LazyCompile,0,0x2b81aea0,264," native uri.js:1",0x4420e668, +code-creation,LazyCompile,0,0x2b81b040,336,"SetUpUri native uri.js:442",0x4420f5b4, +code-creation,LazyCompile,0,0x2b81b200,1880," native messages.js:1",0x4420f670, +code-creation,LazyCompile,0,0x2b81b960,1429,"FormatString native messages.js:187",0x4420f918, +code-creation,LazyCompile,0,0x2b81bf60,280,"MakeGenericError native messages.js:282",0x44211088, +code-creation,LazyCompile,0,0x2b81c080,264,"FormatMessage native messages.js:301",0x4421113c, +code-creation,LazyCompile,0,0x2b81c1a0,200,"MakeRangeError native messages.js:335",0x442112f0, +code-creation,LazyCompile,0,0x2b81c280,1012,"captureStackTrace native messages.js:1123",0x44212280, +code-creation,LazyCompile,0,0x2b81c6e0,460,"SetUpError native messages.js:1173",0x44212410, +code-creation,LazyCompile,0,0x2b81c8c0,692,"SetUpError.a native messages.js:1176",0x442124c0, +code-creation,LazyCompile,0,0x2b81cb80,164,"d native messages.js:1192",0x44212548, +code-creation,LazyCompile,0,0x2b81cc40,360," native messages.js:1202",0x442125d0, +code-creation,LazyCompile,0,0x2b81cc40,360,"Error",0x44212698, +code-creation,LazyCompile,0,0x2b81cc40,360,"TypeError",0x442126f8, +code-creation,LazyCompile,0,0x2b81cc40,360,"RangeError",0x44212758, +code-creation,LazyCompile,0,0x2b81cc40,360,"SyntaxError",0x442127b8, +code-creation,LazyCompile,0,0x2b81cc40,360,"ReferenceError",0x44212818, +code-creation,LazyCompile,0,0x2b81cc40,360,"EvalError",0x44212878, +code-creation,LazyCompile,0,0x2b81cc40,360,"URIError",0x442128d8, +code-creation,LazyCompile,0,0x2b81cdc0,424,"SetUpStackOverflowBoilerplate native messages.js:1301",0x44212a74, +code-creation,LazyCompile,0,0x2b81cf80,216," native messages.js:294",0x44214b3c, +code-creation,LazyCompile,0,0x2b81d060,408," native string.js:1",0x44214c2c, +code-creation,LazyCompile,0,0x2b81d200,380,"StringConstructor native string.js:35",0x44214e2c, +code-creation,LazyCompile,0,0x2b81d380,1132,"SetUpString native string.js:962",0x44216ea8, +code-creation,LazyCompile,0,0x2b81d800,616," native date.js:1",0x44216fa0, +code-creation,LazyCompile,0,0x2b81da80,1392,"DateConstructor native date.js:141",0x442182bc, +code-creation,LazyCompile,0,0x2b81e000,1396,"SetUpDate native date.js:761",0x44219944, +code-creation,LazyCompile,0,0x2b81e580,268," native array.js:1",0x44219b20, +code-creation,LazyCompile,0,0x2b81e6a0,2272,"SetUpArray native array.js:1591",0x4421c6ac, +code-creation,LazyCompile,0,0x2b81ef80,292,"SetUpArray.b native array.js:1605",0x4421c814, +code-creation,LazyCompile,0,0x2b81f0c0,1084," native v8natives.js:1",0x4421c904, +code-creation,LazyCompile,0,0x2b81f500,561,"InstallFunctions native v8natives.js:46",0x4421cc1c, +code-creation,LazyCompile,0,0x2b81f740,304,"InstallGetterSetter native v8natives.js:72",0x4421ea1c, +code-creation,LazyCompile,0,0x2b81f880,814,"SetUpLockedPrototype native v8natives.js:87",0x4421eab4, +code-creation,LazyCompile,0,0x2b81fbc0,452,"SetUpGlobal native v8natives.js:197",0x4421ed3c, +code-creation,LazyCompile,0,0x2b81fda0,404,"hasOwnProperty native v8natives.js:251",0x4421eee4, +code-creation,LazyCompile,0,0x2b81ff40,308,"ObjectConstructor native v8natives.js:1371",0x442200b4, +code-creation,LazyCompile,0,0x2b820080,1044,"SetUpObject native v8natives.js:1385",0x44220140, +code-creation,LazyCompile,0,0x2b8204a0,292,"BooleanConstructor native v8natives.js:1437",0x442201c8, +code-creation,LazyCompile,0,0x2b8205e0,448,"SetUpBoolean native v8natives.js:1472",0x44220314, +code-creation,LazyCompile,0,0x2b8207a0,336,"NumberConstructor native v8natives.js:1491",0x442203ac, +code-creation,LazyCompile,0,0x2b820900,924,"SetUpNumber native v8natives.js:1635",0x4422073c, +code-creation,LazyCompile,0,0x2b820ca0,440,"FunctionConstructor native v8natives.js:1813",0x44220954, +code-creation,LazyCompile,0,0x2b820e60,380,"SetUpFunction native v8natives.js:1826",0x442209f8, +code-creation,LazyCompile,0,0x2b820fe0,264," native json.js:1",0x44221238, +code-creation,LazyCompile,0,0x2b821100,260,"SetUpJSON native json.js:219",0x44221940, +code-creation,LazyCompile,0,0x2b821220,340," native math.js:1",0x44221a5c, +code-creation,LazyCompile,0,0x2b821380,164,"MathConstructor native math.js:40",0x44221ba4, +code-creation,LazyCompile,0,0x2b821440,1112,"SetUpMath native math.js:226",0x4422283c, +code-creation,LazyCompile,0,0x2b8218a0,404," native regexp.js:1",0x442228f8, +code-creation,LazyCompile,0,0x2b821a40,324,"RegExpConstructor native regexp.js:90",0x44223264, +code-creation,LazyCompile,0,0x2b821ba0,224,"RegExpMakeCaptureGetter native regexp.js:360",0x44223784, +code-creation,LazyCompile,0,0x2b821c80,1561,"SetUpRegExp native regexp.js:400",0x44223878, +code-creation,LazyCompile,0,0x2b8222a0,280," native apinatives.js:1",0x44223b98, +code-creation,LazyCompile,0,0x2b8223c0,612," native runtime.js:1",0x44223e30, +code-creation,LazyCompile,0,0x2b822640,1728,"EQUALS native runtime.js:54",0x44224078, +code-creation,LazyCompile,0,0x2b822d00,376,"STRICT_EQUALS native runtime.js:108",0x44224c18, +code-creation,LazyCompile,0,0x2b822e80,924,"COMPARE native runtime.js:128",0x44224ca4, +code-creation,LazyCompile,0,0x2b823220,596,"ADD native runtime.js:171",0x44224d44, +code-creation,LazyCompile,0,0x2b823480,572,"STRING_ADD_LEFT native runtime.js:191",0x44224dd8, +code-creation,LazyCompile,0,0x2b8236c0,580,"STRING_ADD_RIGHT native runtime.js:206",0x44224e64, +code-creation,LazyCompile,0,0x2b823920,296,"SUB native runtime.js:222",0x44224ef4, +code-creation,LazyCompile,0,0x2b823a60,296,"MUL native runtime.js:230",0x44224f84, +code-creation,LazyCompile,0,0x2b823ba0,296,"DIV native runtime.js:238",0x44225014, +code-creation,LazyCompile,0,0x2b823ce0,296,"MOD native runtime.js:246",0x442250a4, +code-creation,LazyCompile,0,0x2b823e20,296,"BIT_OR native runtime.js:260",0x44225134, +code-creation,LazyCompile,0,0x2b823f60,384,"BIT_AND native runtime.js:268",0x442251c4, +code-creation,LazyCompile,0,0x2b8240e0,296,"BIT_XOR native runtime.js:290",0x44225254, +code-creation,LazyCompile,0,0x2b824220,244,"UNARY_MINUS native runtime.js:298",0x442252e4, +code-creation,LazyCompile,0,0x2b824320,244,"BIT_NOT native runtime.js:305",0x44225370, +code-creation,LazyCompile,0,0x2b824420,296,"SHL native runtime.js:312",0x442253fc, +code-creation,LazyCompile,0,0x2b824560,384,"SAR native runtime.js:320",0x4422548c, +code-creation,LazyCompile,0,0x2b8246e0,296,"SHR native runtime.js:342",0x4422551c, +code-creation,LazyCompile,0,0x2b824820,228,"DELETE native runtime.js:356",0x442255ac, +code-creation,LazyCompile,0,0x2b824920,368,"IN native runtime.js:362",0x4422563c, +code-creation,LazyCompile,0,0x2b824aa0,644,"INSTANCE_OF native runtime.js:375",0x442256e8, +code-creation,LazyCompile,0,0x2b824d40,236,"FILTER_KEY native runtime.js:406",0x442257b8, +code-creation,LazyCompile,0,0x2b824e40,380,"CALL_NON_FUNCTION native runtime.js:413",0x44225848, +code-creation,LazyCompile,0,0x2b824fc0,380,"CALL_NON_FUNCTION_AS_CONSTRUCTOR native runtime.js:422",0x442258f4, +code-creation,LazyCompile,0,0x2b825140,288,"CALL_FUNCTION_PROXY native runtime.js:431",0x442259a0, +code-creation,LazyCompile,0,0x2b825260,260,"CALL_FUNCTION_PROXY_AS_CONSTRUCTOR native runtime.js:439",0x44225a38, +code-creation,LazyCompile,0,0x2b825380,912,"APPLY_PREPARE native runtime.js:446",0x44225acc, +code-creation,LazyCompile,0,0x2b825720,232,"APPLY_OVERFLOW native runtime.js:484",0x44225b9c, +code-creation,LazyCompile,0,0x2b825820,188,"TO_OBJECT native runtime.js:490",0x44225c38, +code-creation,LazyCompile,0,0x2b8258e0,188,"TO_NUMBER native runtime.js:496",0x44225cc0, +code-creation,LazyCompile,0,0x2b8259a0,188,"TO_STRING native runtime.js:502",0x44225d48, +code-creation,LazyCompile,0,0x2b825a60,600,"ToPrimitive native runtime.js:514",0x44225dd0, +code-creation,LazyCompile,0,0x2b825cc0,404,"ToBoolean native runtime.js:526",0x44225e60, +code-creation,LazyCompile,0,0x2b825e60,504,"ToNumber native runtime.js:536",0x44225eec, +code-creation,LazyCompile,0,0x2b826060,416,"ToString native runtime.js:561",0x44225fd8, +code-creation,LazyCompile,0,0x2b826200,220,"ToName native runtime.js:578",0x442260c4, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227108, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227168, +code-creation,LazyCompile,3,0x2b8262e0,77,"OpaqueReference",0x442271c8, +code-creation,LazyCompile,3,0x2b8262e0,77,"JSON",0x44227228, +code-creation,LazyCompile,0,0x2b8204a0,292,"Boolean",0x44227288, +code-creation,LazyCompile,3,0x2b82a080,83,"Array",0x442272e8, +code-creation,LazyCompile,3,0x2b826460,77,"pop",0x44227348, +code-creation,LazyCompile,3,0x2b826400,77,"push",0x442273a8, +code-creation,LazyCompile,3,0x2b826640,77,"concat",0x44227408, +code-creation,LazyCompile,3,0x2b8264c0,77,"shift",0x44227468, +code-creation,LazyCompile,3,0x2b826520,77,"unshift",0x442274c8, +code-creation,LazyCompile,3,0x2b826580,77,"slice",0x44227528, +code-creation,LazyCompile,3,0x2b8265e0,77,"splice",0x44227588, +code-creation,LazyCompile,0,0x2b8207a0,336,"Number",0x442275e8, +code-creation,LazyCompile,3,0x2b82a020,78,"InternalArray",0x44227648, +code-creation,LazyCompile,3,0x2b82a020,78,"InternalPackedArray",0x442276b4, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227714, +code-creation,LazyCompile,0,0x2b821a40,324,"RegExp",0x44227774, +code-creation,LazyCompile,0,0x2b81da80,1392,"Date",0x442277d4, +code-creation,LazyCompile,0,0x2b820ca0,440,"Function",0x44227834, +code-creation,LazyCompile,0,0x2b81d200,380,"String",0x44227894, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x442278f4, +code-creation,LazyCompile,0,0x2b81cf80,216,"Script",0x44227960, +code-creation,LazyCompile,0,0x2b81ff40,308,"Object",0x44227a00, +code-creation,LazyCompile,3,0x2b829d00,376,"call",0x44227a60, +code-creation,LazyCompile,3,0x2b829e80,388,"apply",0x44227ac0, +code-creation,LazyCompile,3,0x2b8262e0,77,"Arguments",0x44227b20, +code-creation,LazyCompile,3,0x2b826820,77,"ThrowTypeError",0x44227b80, +code-creation,LazyCompile,3,0x2b826760,77,"",0x44227be0, +code-creation,LazyCompile,3,0x2b8267c0,77,"",0x44227c40, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227ca0, +timer-event-start,"V8.GCCompactor",9350 +timer-event-start,"V8.External",9362 +timer-event-end,"V8.External",9370 +timer-event-start,"V8.External",10477 +timer-event-end,"V8.External",10500 +timer-event-end,"V8.GCCompactor",10511 +code-creation,Stub,2,0x2b80a000,484,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80a200,622,"CEntryStub" +code-creation,Stub,2,0x2b80a480,540,"ArrayNArgumentsConstructorStub" +code-creation,Stub,13,0x2b80a6a0,116,"CompareICStub" +code-creation,Stub,2,0x2b80a720,1428,"RecordWriteStub" +code-creation,Stub,2,0x2b80acc0,97,"StoreBufferOverflowStub" +code-creation,Stub,2,0x2b80ad40,611,"RecordWriteStub" +code-creation,Stub,2,0x2b80afc0,76,"InterruptStub" +code-creation,Stub,13,0x2b80b020,104,"CompareICStub" +code-creation,Stub,2,0x2b80b0a0,130,"ArgumentsAccessStub" +code-creation,Stub,2,0x2b80b140,160,"FastNewContextStub" +code-creation,Stub,2,0x2b80b1e0,79,"StubFailureTrampolineStub" +code-creation,Stub,2,0x2b80b240,704,"ArraySingleArgumentConstructorStub" +code-creation,Stub,14,0x2b80b500,93,"CompareNilICStub" +code-creation,Stub,2,0x2b80b560,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80b6a0,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80b940,740,"NameDictionaryLookupStub" +code-creation,Stub,13,0x2b80bc40,156,"CompareICStub" +code-creation,Stub,2,0x2b80bce0,611,"RecordWriteStub" +code-creation,Stub,13,0x2b80bf60,122,"CompareICStub" +code-creation,Stub,2,0x2b80bfe0,217,"CreateAllocationSiteStub" +code-creation,Stub,2,0x2b80c0c0,1456,"RecordWriteStub" +code-creation,Stub,2,0x2b80c680,245,"StoreArrayLiteralElementStub" +code-creation,Stub,2,0x2b80c780,1448,"RecordWriteStub" +code-creation,Stub,2,0x2b80cd40,1471,"StringAddStub" +code-creation,Stub,2,0x2b80d300,1448,"RecordWriteStub" +code-creation,Stub,2,0x2b80d8c0,1453,"RecordWriteStub" +code-creation,Stub,12,0x2b80de80,146,"BinaryOpStub" +code-creation,Stub,2,0x2b80df20,640,"InternalArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80e1a0,517,"ArrayConstructorStub" +code-creation,Stub,2,0x2b80e3c0,305,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e500,305,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e640,349,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e7a0,349,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80e900,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b80ea40,680,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80ed00,692,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80efc0,704,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80f280,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b80f520,488,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80f720,540,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80f940,432,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80fb00,432,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b80fcc0,1453,"RecordWriteStub" +code-creation,Stub,2,0x2b810280,400,"InternalArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b810420,611,"RecordWriteStub" +code-creation,Stub,2,0x2b8106a0,213,"JSEntryStub" +code-creation,Stub,13,0x2b810780,104,"CompareICStub" +code-creation,Stub,12,0x2b810800,124,"BinaryOpStub" +code-creation,Stub,2,0x2b810880,1447,"StringAddStub" +code-creation,Stub,2,0x2b810e40,640,"InternalArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b8110c0,400,"InternalArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b811260,261,"FastCloneShallowArrayStub" +code-creation,Stub,12,0x2b811380,88,"BinaryOpStub" +code-creation,Stub,2,0x2b8113e0,76,"StackCheckStub" +code-creation,Stub,2,0x2b811440,1437,"RecordWriteStub" +code-creation,Stub,2,0x2b8119e0,289,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b811b20,331,"CallFunctionStub" +code-creation,Builtin,3,0x2b811c80,174,"A builtin from the snapshot" +code-creation,Stub,14,0x2b811d40,124,"CompareNilICStub" +code-creation,Stub,2,0x2b811dc0,1420,"RecordWriteStub" +code-creation,Stub,13,0x2b812360,104,"CompareICStub" +code-creation,Stub,2,0x2b8123e0,76,"LoadFieldStub" +code-creation,Stub,13,0x2b812440,104,"CompareICStub" +code-creation,Stub,2,0x2b8124c0,195,"NumberToStringStub" +code-creation,Stub,15,0x2b8125a0,148,"ToBooleanStub" +code-creation,Stub,2,0x2b812640,351,"ArgumentsAccessStub" +code-creation,Stub,2,0x2b8127a0,664,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b812a40,1420,"RecordWriteStub" +code-creation,Stub,12,0x2b812fe0,133,"BinaryOpStub" +code-creation,Stub,2,0x2b813080,1664,"StringAddStub" +code-creation,Stub,2,0x2b813700,1661,"StringAddStub" +code-creation,Stub,2,0x2b813d80,472,"ArrayNArgumentsConstructorStub" +code-creation,Stub,2,0x2b813f60,80,"StubFailureTrampolineStub" +code-creation,Stub,13,0x2b813fc0,104,"CompareICStub" +code-creation,Stub,2,0x2b814040,331,"CallFunctionStub" +code-creation,Stub,2,0x2b8141a0,660,"ArraySingleArgumentConstructorStub" +code-creation,Stub,2,0x2b814440,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b8149e0,146,"BinaryOpStub" +code-creation,Stub,2,0x2b814a80,271,"CallConstructStub" +code-creation,Stub,15,0x2b814ba0,136,"ToBooleanStub" +code-creation,Stub,2,0x2b814c40,468,"ArrayNArgumentsConstructorStub" +code-creation,Stub,15,0x2b814e20,128,"ToBooleanStub" +code-creation,Stub,2,0x2b814ea0,163,"FastNewContextStub" +code-creation,Stub,2,0x2b814f60,1425,"RecordWriteStub" +code-creation,LoadIC,5,0x2b815500,145,"A load IC from the snapshot" +code-creation,Builtin,3,0x2b8155a0,83,"A builtin from the snapshot" +code-creation,Stub,12,0x2b815600,88,"BinaryOpStub" +code-creation,Stub,2,0x2b815660,1433,"RecordWriteStub" +code-creation,Stub,2,0x2b815c00,331,"CallFunctionStub" +code-creation,Stub,13,0x2b815d60,104,"CompareICStub" +code-creation,Stub,2,0x2b815de0,304,"FastNewClosureStub" +code-creation,Stub,2,0x2b815f20,285,"ArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b816040,1433,"RecordWriteStub" +code-creation,Stub,2,0x2b8165e0,233,"InternalArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b8166e0,740,"NameDictionaryLookupStub" +code-creation,Stub,2,0x2b8169e0,740,"NameDictionaryLookupStub" +code-creation,Stub,12,0x2b816ce0,88,"BinaryOpStub" +code-creation,Stub,2,0x2b816d40,216,"StringCompareStub" +code-creation,Stub,15,0x2b816e20,93,"ToBooleanStub" +code-creation,Stub,12,0x2b816e80,88,"BinaryOpStub" +code-creation,Stub,2,0x2b816ee0,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b817480,155,"BinaryOpStub" +code-creation,Stub,2,0x2b817520,169,"InternalArrayConstructorStub" +code-creation,Stub,2,0x2b8175e0,233,"InternalArrayNoArgumentConstructorStub" +code-creation,Stub,2,0x2b8176e0,1433,"RecordWriteStub" +code-creation,Stub,12,0x2b817c80,88,"BinaryOpStub" +code-creation,Stub,2,0x2b817ce0,328,"KeyedLoadElementStub" +code-creation,Stub,2,0x2b817e40,1461,"RecordWriteStub" +code-creation,Stub,2,0x2b818400,98,"ToNumberStub" +code-creation,Stub,13,0x2b818480,122,"CompareICStub" +code-creation,Stub,12,0x2b818500,124,"BinaryOpStub" +code-creation,Stub,2,0x2b818580,148,"CallConstructStub" +code-creation,Stub,13,0x2b818620,491,"CompareICStub" +code-creation,Stub,2,0x2b818820,213,"JSEntryStub" +code-creation,CallIC,7,0x2b818900,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8189c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818a80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818b40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818c00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818cc0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818d80,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818e40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818f00,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b818fc0,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819080,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819140,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819200,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8192c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819380,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819440,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819500,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8195c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819680,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819740,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819800,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b8198c0,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819980,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819a40,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819b00,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819bc0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819c80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819d40,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819e00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819ec0,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b819f80,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a040,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a100,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a1c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a280,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a340,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a400,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a4c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a580,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a640,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a700,189,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a7c0,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a880,178,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81a940,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81aa00,180,"A call IC from the snapshot" +code-creation,CallIC,7,0x2b81aac0,180,"A call IC from the snapshot" +code-creation,Builtin,3,0x2b81ab80,107,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ac00,105,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ac80,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81ace0,432,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b81afc0,101,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b81b1a0,83,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b81bf00,83,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b81c680,84,"A store IC from the snapshot" +code-creation,Builtin,3,0x2b8262e0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826340,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8263a0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826400,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826460,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8264c0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826520,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826580,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8265e0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826640,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8266a0,80,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826700,80,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826760,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8267c0,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826820,77,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826880,75,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8268e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826960,491,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826b60,406,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826d00,157,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826da0,131,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826e40,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826ec0,107,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826f40,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b826fe0,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827080,143,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827120,94,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827180,91,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8271e0,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827240,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8272a0,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827300,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827360,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b8273c0,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827420,84,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b827480,84,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b8274e0,83,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827540,313,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827680,266,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b8277a0,80,"A load IC from the snapshot" +code-creation,LoadIC,5,0x2b827800,83,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827860,83,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b8278c0,896,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827c40,499,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827e40,144,"A keyed load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b827ee0,216,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b827fc0,365,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828140,293,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828280,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8282e0,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828340,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8283a0,84,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828400,365,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828580,293,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b8286c0,88,"A store IC from the snapshot" +code-creation,StoreIC,9,0x2b828720,82,"A store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b828780,84,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b8287e0,2082,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b829020,84,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b829080,2082,"A keyed store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b8298c0,286,"A keyed store IC from the snapshot" +code-creation,Builtin,3,0x2b8299e0,355,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829b60,416,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829d00,376,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b829e80,388,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a020,78,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a080,83,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a0e0,357,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a260,359,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a3e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a460,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a4e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a560,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a5e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a660,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a6e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a760,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a7e0,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a860,101,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a8e0,104,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a960,106,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82a9e0,110,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82aa60,112,"A builtin from the snapshot" +code-creation,LoadIC,5,0x2b82aae0,106,"A load IC from the snapshot" +code-creation,KeyedLoadIC,6,0x2b82ab60,106,"A keyed load IC from the snapshot" +code-creation,StoreIC,9,0x2b82abe0,108,"A store IC from the snapshot" +code-creation,KeyedStoreIC,10,0x2b82ac60,108,"A keyed store IC from the snapshot" +code-creation,Stub,14,0x2b82ace0,104,"CallFunctionStub" +code-creation,Builtin,3,0x2b82ad60,65,"A builtin from the snapshot" +code-creation,Builtin,3,0x2b82adc0,93,"A builtin from the snapshot" +timer-event-start,"V8.GCCompactor",12962 +timer-event-start,"V8.External",12972 +timer-event-end,"V8.External",12981 +timer-event-start,"V8.External",13996 +timer-event-end,"V8.External",14014 +timer-event-end,"V8.GCCompactor",14024 +code-creation,LazyCompile,3,0x2b81ac80,77,"Empty :1",0x4420e5cc, +code-creation,LazyCompile,0,0x2b81b040,336,"SetUpUri native uri.js:442",0x4420f5b4, +code-creation,LazyCompile,0,0x2b81b960,1429,"FormatString native messages.js:187",0x4420f918, +code-creation,LazyCompile,0,0x2b81bf60,280,"MakeGenericError native messages.js:282",0x44211088, +code-creation,LazyCompile,0,0x2b81c080,264,"FormatMessage native messages.js:301",0x4421113c, +code-creation,LazyCompile,0,0x2b81c1a0,200,"MakeRangeError native messages.js:335",0x442112f0, +code-creation,LazyCompile,0,0x2b81c280,1012,"captureStackTrace native messages.js:1123",0x44212280, +code-creation,LazyCompile,0,0x2b81c6e0,460,"SetUpError native messages.js:1173",0x44212410, +code-creation,LazyCompile,0,0x2b81c8c0,692,"SetUpError.a native messages.js:1176",0x442124c0, +code-creation,LazyCompile,0,0x2b81cb80,164,"d native messages.js:1192",0x44212548, +code-creation,LazyCompile,0,0x2b81cc40,360," native messages.js:1202",0x442125d0, +code-creation,LazyCompile,0,0x2b81cc40,360,"Error",0x44212698, +code-creation,LazyCompile,0,0x2b81cc40,360,"TypeError",0x442126f8, +code-creation,LazyCompile,0,0x2b81cc40,360,"RangeError",0x44212758, +code-creation,LazyCompile,0,0x2b81cc40,360,"SyntaxError",0x442127b8, +code-creation,LazyCompile,0,0x2b81cc40,360,"ReferenceError",0x44212818, +code-creation,LazyCompile,0,0x2b81cc40,360,"EvalError",0x44212878, +code-creation,LazyCompile,0,0x2b81cc40,360,"URIError",0x442128d8, +code-creation,LazyCompile,0,0x2b81cdc0,424,"SetUpStackOverflowBoilerplate native messages.js:1301",0x44212a74, +code-creation,LazyCompile,0,0x2b81d200,380,"StringConstructor native string.js:35",0x44214e2c, +code-creation,LazyCompile,0,0x2b81d380,1132,"SetUpString native string.js:962",0x44216ea8, +code-creation,LazyCompile,0,0x2b81da80,1392,"DateConstructor native date.js:141",0x442182bc, +code-creation,LazyCompile,0,0x2b81e000,1396,"SetUpDate native date.js:761",0x44219944, +code-creation,LazyCompile,0,0x2b81e6a0,2272,"SetUpArray native array.js:1591",0x4421c6ac, +code-creation,LazyCompile,0,0x2b81f500,561,"InstallFunctions native v8natives.js:46",0x4421cc1c, +code-creation,LazyCompile,0,0x2b81f740,304,"InstallGetterSetter native v8natives.js:72",0x4421ea1c, +code-creation,LazyCompile,0,0x2b81f880,814,"SetUpLockedPrototype native v8natives.js:87",0x4421eab4, +code-creation,LazyCompile,0,0x2b81fbc0,452,"SetUpGlobal native v8natives.js:197",0x4421ed3c, +code-creation,LazyCompile,0,0x2b81fda0,404,"hasOwnProperty native v8natives.js:251",0x4421eee4, +code-creation,LazyCompile,0,0x2b81ff40,308,"ObjectConstructor native v8natives.js:1371",0x442200b4, +code-creation,LazyCompile,0,0x2b820080,1044,"SetUpObject native v8natives.js:1385",0x44220140, +code-creation,LazyCompile,0,0x2b8204a0,292,"BooleanConstructor native v8natives.js:1437",0x442201c8, +code-creation,LazyCompile,0,0x2b8205e0,448,"SetUpBoolean native v8natives.js:1472",0x44220314, +code-creation,LazyCompile,0,0x2b8207a0,336,"NumberConstructor native v8natives.js:1491",0x442203ac, +code-creation,LazyCompile,0,0x2b820900,924,"SetUpNumber native v8natives.js:1635",0x4422073c, +code-creation,LazyCompile,0,0x2b820ca0,440,"FunctionConstructor native v8natives.js:1813",0x44220954, +code-creation,LazyCompile,0,0x2b820e60,380,"SetUpFunction native v8natives.js:1826",0x442209f8, +code-creation,LazyCompile,0,0x2b821100,260,"SetUpJSON native json.js:219",0x44221940, +code-creation,LazyCompile,0,0x2b821380,164,"MathConstructor native math.js:40",0x44221ba4, +code-creation,LazyCompile,0,0x2b821440,1112,"SetUpMath native math.js:226",0x4422283c, +code-creation,LazyCompile,0,0x2b821a40,324,"RegExpConstructor native regexp.js:90",0x44223264, +code-creation,LazyCompile,0,0x2b821ba0,224,"RegExpMakeCaptureGetter native regexp.js:360",0x44223784, +code-creation,LazyCompile,0,0x2b821c80,1561,"SetUpRegExp native regexp.js:400",0x44223878, +code-creation,LazyCompile,0,0x2b822640,1728,"EQUALS native runtime.js:54",0x44224078, +code-creation,LazyCompile,0,0x2b822d00,376,"STRICT_EQUALS native runtime.js:108",0x44224c18, +code-creation,LazyCompile,0,0x2b822e80,924,"COMPARE native runtime.js:128",0x44224ca4, +code-creation,LazyCompile,0,0x2b823220,596,"ADD native runtime.js:171",0x44224d44, +code-creation,LazyCompile,0,0x2b823480,572,"STRING_ADD_LEFT native runtime.js:191",0x44224dd8, +code-creation,LazyCompile,0,0x2b8236c0,580,"STRING_ADD_RIGHT native runtime.js:206",0x44224e64, +code-creation,LazyCompile,0,0x2b823920,296,"SUB native runtime.js:222",0x44224ef4, +code-creation,LazyCompile,0,0x2b823a60,296,"MUL native runtime.js:230",0x44224f84, +code-creation,LazyCompile,0,0x2b823ba0,296,"DIV native runtime.js:238",0x44225014, +code-creation,LazyCompile,0,0x2b823ce0,296,"MOD native runtime.js:246",0x442250a4, +code-creation,LazyCompile,0,0x2b823e20,296,"BIT_OR native runtime.js:260",0x44225134, +code-creation,LazyCompile,0,0x2b823f60,384,"BIT_AND native runtime.js:268",0x442251c4, +code-creation,LazyCompile,0,0x2b8240e0,296,"BIT_XOR native runtime.js:290",0x44225254, +code-creation,LazyCompile,0,0x2b824220,244,"UNARY_MINUS native runtime.js:298",0x442252e4, +code-creation,LazyCompile,0,0x2b824320,244,"BIT_NOT native runtime.js:305",0x44225370, +code-creation,LazyCompile,0,0x2b824420,296,"SHL native runtime.js:312",0x442253fc, +code-creation,LazyCompile,0,0x2b824560,384,"SAR native runtime.js:320",0x4422548c, +code-creation,LazyCompile,0,0x2b8246e0,296,"SHR native runtime.js:342",0x4422551c, +code-creation,LazyCompile,0,0x2b824820,228,"DELETE native runtime.js:356",0x442255ac, +code-creation,LazyCompile,0,0x2b824920,368,"IN native runtime.js:362",0x4422563c, +code-creation,LazyCompile,0,0x2b824aa0,644,"INSTANCE_OF native runtime.js:375",0x442256e8, +code-creation,LazyCompile,0,0x2b824d40,236,"FILTER_KEY native runtime.js:406",0x442257b8, +code-creation,LazyCompile,0,0x2b824e40,380,"CALL_NON_FUNCTION native runtime.js:413",0x44225848, +code-creation,LazyCompile,0,0x2b824fc0,380,"CALL_NON_FUNCTION_AS_CONSTRUCTOR native runtime.js:422",0x442258f4, +code-creation,LazyCompile,0,0x2b825140,288,"CALL_FUNCTION_PROXY native runtime.js:431",0x442259a0, +code-creation,LazyCompile,0,0x2b825260,260,"CALL_FUNCTION_PROXY_AS_CONSTRUCTOR native runtime.js:439",0x44225a38, +code-creation,LazyCompile,0,0x2b825380,912,"APPLY_PREPARE native runtime.js:446",0x44225acc, +code-creation,LazyCompile,0,0x2b825720,232,"APPLY_OVERFLOW native runtime.js:484",0x44225b9c, +code-creation,LazyCompile,0,0x2b825820,188,"TO_OBJECT native runtime.js:490",0x44225c38, +code-creation,LazyCompile,0,0x2b8258e0,188,"TO_NUMBER native runtime.js:496",0x44225cc0, +code-creation,LazyCompile,0,0x2b8259a0,188,"TO_STRING native runtime.js:502",0x44225d48, +code-creation,LazyCompile,0,0x2b825a60,600,"ToPrimitive native runtime.js:514",0x44225dd0, +code-creation,LazyCompile,0,0x2b825cc0,404,"ToBoolean native runtime.js:526",0x44225e60, +code-creation,LazyCompile,0,0x2b825e60,504,"ToNumber native runtime.js:536",0x44225eec, +code-creation,LazyCompile,0,0x2b826060,416,"ToString native runtime.js:561",0x44225fd8, +code-creation,LazyCompile,0,0x2b826200,220,"ToName native runtime.js:578",0x442260c4, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227108, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227168, +code-creation,LazyCompile,3,0x2b8262e0,77,"OpaqueReference",0x442271c8, +code-creation,LazyCompile,3,0x2b8262e0,77,"JSON",0x44227228, +code-creation,LazyCompile,0,0x2b8204a0,292,"Boolean",0x44227288, +code-creation,LazyCompile,3,0x2b82a080,83,"Array",0x442272e8, +code-creation,LazyCompile,3,0x2b826460,77,"pop",0x44227348, +code-creation,LazyCompile,3,0x2b826400,77,"push",0x442273a8, +code-creation,LazyCompile,3,0x2b826640,77,"concat",0x44227408, +code-creation,LazyCompile,3,0x2b8264c0,77,"shift",0x44227468, +code-creation,LazyCompile,3,0x2b826520,77,"unshift",0x442274c8, +code-creation,LazyCompile,3,0x2b826580,77,"slice",0x44227528, +code-creation,LazyCompile,3,0x2b8265e0,77,"splice",0x44227588, +code-creation,LazyCompile,0,0x2b8207a0,336,"Number",0x442275e8, +code-creation,LazyCompile,3,0x2b82a020,78,"InternalArray",0x44227648, +code-creation,LazyCompile,3,0x2b82a020,78,"InternalPackedArray",0x442276b4, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227714, +code-creation,LazyCompile,0,0x2b821a40,324,"RegExp",0x44227774, +code-creation,LazyCompile,0,0x2b81da80,1392,"Date",0x442277d4, +code-creation,LazyCompile,0,0x2b820ca0,440,"Function",0x44227834, +code-creation,LazyCompile,0,0x2b81d200,380,"String",0x44227894, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x442278f4, +code-creation,LazyCompile,0,0x2b81cf80,216,"Script",0x44227960, +code-creation,LazyCompile,0,0x2b81ff40,308,"Object",0x44227a00, +code-creation,LazyCompile,3,0x2b829d00,376,"call",0x44227a60, +code-creation,LazyCompile,3,0x2b829e80,388,"apply",0x44227ac0, +code-creation,LazyCompile,3,0x2b8262e0,77,"Arguments",0x44227b20, +code-creation,LazyCompile,3,0x2b826820,77,"ThrowTypeError",0x44227b80, +code-creation,LazyCompile,3,0x2b826760,77,"",0x44227be0, +code-creation,LazyCompile,3,0x2b8267c0,77,"",0x44227c40, +code-creation,LazyCompile,3,0x2b8262e0,77,"",0x44227ca0, +code-creation,Stub,2,0x2b81ef80,782,"CEntryStub" +code-creation,Stub,2,0x2b81f2a0,197,"StoreBufferOverflowStub" +code-creation,Stub,2,0x2b81f380,79,"StubFailureTrampolineStub" +code-creation,Stub,2,0x2b81f3e0,80,"StubFailureTrampolineStub" +tick,0xf776d430,16272,0,0x0,3 +timer-event-start,"V8.ParseLazy",16854 +timer-event-end,"V8.ParseLazy",17081 +timer-event-start,"V8.CompileLazy",17098 +timer-event-start,"V8.CompileFullCode",17125 +tick,0xf74c79de,17348,0,0xff820034,2 +code-creation,Stub,2,0x2b81b200,246,"FastCloneShallowObjectStub" +code-creation,Stub,12,0x2b81b300,88,"BinaryOpStub_ADD_Alloc_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b81b360,88,"BinaryOpStub_ADD_OverwriteLeft_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",17910 +code-creation,LazyCompile,0,0x2b81b3c0,572,"Instantiate native apinatives.js:44",0x44223cdc,~ +timer-event-end,"V8.CompileLazy",17948 +code-creation,Stub,13,0x2b81b600,116,"CompareICStub" +timer-event-start,"V8.ParseLazy",18020 +timer-event-end,"V8.ParseLazy",18170 +timer-event-start,"V8.CompileLazy",18187 +timer-event-start,"V8.CompileFullCode",18208 +code-creation,Stub,12,0x2b81b680,88,"BinaryOpStub_BIT_AND_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",18340 +code-creation,LazyCompile,0,0x2b82ae20,1008,"InstantiateFunction native apinatives.js:65",0x44223d3c, +timer-event-end,"V8.CompileLazy",18396 +tick,0xf776d430,18420,0,0x90d68fc,2,0x2b81b4f0 +code-creation,Stub,2,0x2b82b220,1800,"RecordWriteStub" +code-creation,Stub,2,0x2b82b940,236,"KeyedStoreElementStub" +code-creation,KeyedStoreIC,10,0x2b82ba40,91,"" +code-creation,CallIC,7,0x2b82baa0,129,"InstantiateFunction" +code-creation,LoadIC,5,0x2b82bb40,103,"kApiFunctionCache" +code-creation,Stub,12,0x2b82bbc0,146,"BinaryOpStub_BIT_AND_Alloc_Smi+Smi" +code-creation,Stub,15,0x2b82bc60,132,"ToBooleanStub(Smi)" +timer-event-start,"V8.ParseLazy",19172 +timer-event-end,"V8.ParseLazy",19253 +timer-event-start,"V8.CompileLazy",19268 +timer-event-start,"V8.CompileFullCode",19285 +timer-event-end,"V8.CompileFullCode",19350 +code-creation,LazyCompile,0,0x2b82bd00,753,"ConfigureTemplateInstance native apinatives.js:105",0x44223d9c, +timer-event-end,"V8.CompileLazy",19384 +tick,0x83c1620,19510,0,0xff81f92c,0,0x2b82b1de,0x2b81b4f0,0x2b81b576,0x2b82b0b8,0x2b81b4f0 +code-creation,Stub,2,0x2b82c000,208,"KeyedLoadElementStub" +code-creation,KeyedLoadIC,6,0x2b82c0e0,91,"" +code-creation,Stub,15,0x2b82c140,156,"ToBooleanStub(Undefined,SpecObject)" +code-creation,KeyedLoadIC,6,0x2b82c1e0,91,"" +code-creation,Stub,12,0x2b82c240,146,"BinaryOpStub_ADD_Alloc_Smi+Smi" +code-creation,Stub,15,0x2b82c2e0,168,"ToBooleanStub(Undefined,String)" +code-creation,CallIC,7,0x2b82c3a0,129,"ConfigureTemplateInstance" +code-creation,CallIC,7,0x2b82c440,129,"Instantiate" +code-creation,CallIC,7,0x2b82c4e0,144,"Instantiate" +code-creation,Stub,13,0x2b82c580,469,"CompareICStub" +code-creation,Stub,14,0x2b82c760,144,"CompareNilICStub(NullValue)(MonomorphicMap)" +code-creation,Stub,14,0x2b82c800,144,"CompareNilICStub(NullValue)(MonomorphicMap)" +tick,0x8132a60,20593,0,0x8141e5e,0,0x2b822c4e,0x2b82af24,0x2b81b4f0,0x2b82beff,0x2b81b59f,0x2b82beff,0x2b81b589,0x2b82b0b8,0x2b81b4f0 +code-creation,Stub,14,0x2b82c8a0,124,"CompareNilICStub(NullValue)(Undefined,Null,Undetectable,Generic)" +code-creation,Stub,13,0x2b82c920,156,"CompareICStub" +timer-event-start,"V8.ParseLazy",20736 +timer-event-end,"V8.ParseLazy",20818 +timer-event-start,"V8.CompileLazy",20838 +timer-event-start,"V8.CompileFullCode",20854 +code-creation,Stub,2,0x2b82c9c0,587,"FastCloneShallowArrayStub" +timer-event-end,"V8.CompileFullCode",21298 +code-creation,LazyCompile,0,0x2b82cc20,812,"DefaultNumber native runtime.js:645",0x44226390,~ +timer-event-end,"V8.CompileLazy",21330 +timer-event-start,"V8.ParseLazy",21352 +timer-event-end,"V8.ParseLazy",21381 +timer-event-start,"V8.CompileLazy",21393 +timer-event-start,"V8.CompileFullCode",21405 +timer-event-end,"V8.CompileFullCode",21436 +code-creation,LazyCompile,0,0x2b82cf60,184,"valueOf native v8natives.js:245",0x4421ee84,~ +timer-event-end,"V8.CompileLazy",21465 +timer-event-start,"V8.ParseLazy",21482 +timer-event-end,"V8.ParseLazy",21544 +timer-event-start,"V8.CompileLazy",21557 +timer-event-start,"V8.CompileFullCode",21571 +timer-event-end,"V8.CompileFullCode",21651 +code-creation,LazyCompile,0,0x2b82d020,652,"ToObject native runtime.js:584",0x44226150,~ +timer-event-end,"V8.CompileLazy",21690 +tick,0x80eabe2,21708,0,0xff81f7a8,2,0x2b82cfe4,0x2b82cd79,0x2b825c84,0x2b822ca7,0x2b82af24,0x2b81b4f0,0x2b82beff,0x2b81b59f,0x2b82beff,0x2b81b589,0x2b82b0b8,0x2b81b4f0 +timer-event-start,"V8.ParseLazy",21761 +timer-event-end,"V8.ParseLazy",21796 +timer-event-start,"V8.CompileLazy",21808 +timer-event-start,"V8.CompileFullCode",21820 +timer-event-end,"V8.CompileFullCode",21845 +code-creation,LazyCompile,0,0x2b82d2c0,220,"IsPrimitive native runtime.js:636",0x44226330,~ +timer-event-end,"V8.CompileLazy",21873 +timer-event-start,"V8.ParseLazy",21895 +timer-event-end,"V8.ParseLazy",21921 +timer-event-start,"V8.CompileLazy",21932 +timer-event-start,"V8.CompileFullCode",21946 +timer-event-end,"V8.CompileFullCode",21966 +code-creation,LazyCompile,0,0x2b82d3a0,184,"toString native v8natives.js:1721",0x44220834,~ +timer-event-end,"V8.CompileLazy",21994 +timer-event-start,"V8.ParseLazy",22009 +timer-event-end,"V8.ParseLazy",22087 +timer-event-start,"V8.CompileLazy",22101 +timer-event-start,"V8.CompileFullCode",22116 +timer-event-end,"V8.CompileFullCode",22221 +code-creation,LazyCompile,0,0x2b82d460,681,"FunctionSourceString native v8natives.js:1693",0x442207d4,~ +timer-event-end,"V8.CompileLazy",22237 +code-creation,Stub,15,0x2b82d720,156,"ToBooleanStub(String)" +code-creation,Stub,12,0x2b82d7c0,124,"BinaryOpStub_ADD_Alloc_String+String" +code-creation,Stub,12,0x2b82d840,124,"BinaryOpStub_ADD_OverwriteLeft_String+String" +code-creation,CallMiss,7,0x2b82d8c0,178,"args_count: 2" +code-creation,CallIC,7,0x2b82d980,128,"ToPrimitive" +code-creation,CallIC,7,0x2b82da00,128,"DefaultNumber" +code-creation,Stub,2,0x2b82da80,116,"valueOf" +code-creation,LoadIC,5,0x2b82db00,93,"valueOf" +code-creation,CallIC,7,0x2b82db60,129,"ToObject" +code-creation,CallIC,7,0x2b82dc00,128,"IsPrimitive" +code-creation,Stub,2,0x2b82dc80,98,"toString" +code-creation,LoadIC,5,0x2b82dd00,93,"toString" +code-creation,CallIC,7,0x2b82dd60,129,"FunctionSourceString" +code-creation,CallIC,7,0x2b82de00,128,"ToNumber" +timer-event-start,"V8.Parse",22650 +tick,0xf776d430,22726,0,0x0,2 +timer-event-end,"V8.Parse",22773 +timer-event-start,"V8.Compile",22785 +timer-event-start,"V8.CompileFullCode",22801 +timer-event-end,"V8.CompileFullCode",22822 +code-creation,Script,0,0x2b82de80,264,"native arraybuffer.js",0x4423ab7c,~ +timer-event-end,"V8.Compile",22836 +timer-event-start,"V8.ParseLazy",22859 +timer-event-end,"V8.ParseLazy",22881 +timer-event-start,"V8.CompileLazy",22887 +timer-event-start,"V8.CompileFullCode",22899 +timer-event-end,"V8.CompileFullCode",22918 +code-creation,LazyCompile,0,0x2b82dfa0,480,"SetUpArrayBuffer native arraybuffer.js:84",0x4423aac0,~ +timer-event-end,"V8.CompileLazy",22934 +timer-event-start,"V8.ParseLazy",22943 +timer-event-end,"V8.ParseLazy",22962 +timer-event-start,"V8.CompileLazy",22967 +timer-event-start,"V8.CompileFullCode",22972 +timer-event-end,"V8.CompileFullCode",22987 +code-creation,LazyCompile,0,0x2b82e180,324,"ArrayBufferConstructor native arraybuffer.js:34",0x4423a9a0,~ +timer-event-end,"V8.CompileLazy",23000 +code-creation,LazyCompile,0,0x2b82e180,324,"ArrayBufferConstructor native arraybuffer.js:34",0x4423a9a0, +timer-event-start,"V8.ParseLazy",23021 +timer-event-end,"V8.ParseLazy",23037 +timer-event-start,"V8.CompileLazy",23042 +timer-event-start,"V8.CompileFullCode",23047 +timer-event-end,"V8.CompileFullCode",23057 +code-creation,LazyCompile,0,0x2b82e2e0,252,"InstallGetter native v8natives.js:63",0x4421e9bc,~ +timer-event-end,"V8.CompileLazy",23069 +code-creation,KeyedLoadIC,6,0x2b82e3e0,91,"" +code-creation,LoadIC,5,0x2b82e440,93,"length" +timer-event-start,"V8.Parse",23160 +timer-event-end,"V8.Parse",23613 +timer-event-start,"V8.Compile",23621 +timer-event-start,"V8.CompileFullCode",23666 +timer-event-end,"V8.CompileFullCode",23702 +code-creation,Script,0,0x2b82e4a0,720,"native typedarray.js",0x4423bc04,~ +timer-event-end,"V8.Compile",23724 +timer-event-start,"V8.ParseLazy",23755 +tick,0xf776d430,23782,0,0x0,2 +timer-event-end,"V8.ParseLazy",23867 +timer-event-start,"V8.CompileLazy",23905 +timer-event-start,"V8.CompileFullCode",23916 +timer-event-end,"V8.CompileFullCode",23939 +code-creation,LazyCompile,0,0x2b82e780,664,"SetupTypedArray native typedarray.js:170",0x4423b238,~ +timer-event-end,"V8.CompileLazy",23971 +timer-event-start,"V8.ParseLazy",23979 +timer-event-end,"V8.ParseLazy",24064 +timer-event-start,"V8.CompileLazy",24071 +timer-event-start,"V8.CompileFullCode",24085 +code-creation,Stub,2,0x2b82ea20,175,"FastNewContextStub" +code-creation,Stub,2,0x2b82eae0,304,"FastNewClosureStub" +code-creation,Stub,2,0x2b82ec20,1448,"RecordWriteStub" +timer-event-end,"V8.CompileFullCode",24149 +code-creation,LazyCompile,0,0x2b82f1e0,460,"CreateTypedArrayConstructor native typedarray.js:38",0x4423af98,~ +timer-event-end,"V8.CompileLazy",24163 +timer-event-start,"V8.ParseLazy",24170 +timer-event-end,"V8.ParseLazy",24198 +timer-event-start,"V8.CompileLazy",24203 +timer-event-start,"V8.CompileFullCode",24211 +code-creation,Stub,2,0x2b82f3c0,331,"CallFunctionStub_Args4_Recording" +code-creation,Stub,2,0x2b82f520,631,"FastCloneShallowArrayStub" +code-creation,Stub,2,0x2b82f7a0,245,"StoreArrayLiteralElementStub" +timer-event-end,"V8.CompileFullCode",24435 +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580,~ +timer-event-end,"V8.CompileLazy",24448 +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +timer-event-start,"V8.ParseLazy",24478 +timer-event-end,"V8.ParseLazy",24519 +timer-event-start,"V8.CompileLazy",24525 +timer-event-start,"V8.CompileFullCode",24533 +timer-event-end,"V8.CompileFullCode",24546 +code-creation,LazyCompile,0,0x2b82fbe0,268,"CreateSubArray native typedarray.js:121",0x4423b178,~ +timer-event-end,"V8.CompileLazy",24559 +code-creation,CallMiss,7,0x2b82fd00,180,"args_count: 4" +code-creation,CallIC,7,0x2b82fdc0,129,"CreateTypedArrayConstructor" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b82fe60,103,"$Object" +code-creation,LoadIC,5,0x2b82fee0,103,"TypedArrayGetBuffer" +code-creation,CallMiss,7,0x2b82ff60,180,"args_count: 3" +code-creation,CallIC,7,0x2b830020,129,"InstallGetter" +code-creation,LoadIC,5,0x2b8300c0,103,"TypedArrayGetByteOffset" +code-creation,LoadIC,5,0x2b830140,103,"TypedArrayGetByteLength" +code-creation,LoadIC,5,0x2b8301c0,103,"TypedArrayGetLength" +code-creation,CallIC,7,0x2b830240,129,"CreateSubArray" +code-creation,LoadIC,5,0x2b8302e0,103,"TypedArraySet" +code-creation,CallIC,7,0x2b830360,133,"$Array" +code-creation,CallIC,7,0x2b830400,129,"InstallFunctions" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +tick,0xf7492ece,24846,0,0xff81ff10,0,0x2b82e839,0x2b82e5f9 +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +timer-event-start,"V8.ParseLazy",25032 +timer-event-end,"V8.ParseLazy",25074 +timer-event-start,"V8.CompileLazy",25081 +timer-event-start,"V8.CompileFullCode",25093 +timer-event-end,"V8.CompileFullCode",25115 +code-creation,LazyCompile,0,0x2b8304a0,888,"SetupDataView native typedarray.js:434",0x4423ba78,~ +timer-event-end,"V8.CompileLazy",25128 +timer-event-start,"V8.ParseLazy",25136 +timer-event-end,"V8.ParseLazy",25175 +timer-event-start,"V8.CompileLazy",25181 +timer-event-start,"V8.CompileFullCode",25188 +code-creation,Stub,12,0x2b830820,88,"BinaryOpStub_SUB_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",25228 +code-creation,LazyCompile,0,0x2b830880,908,"DataViewConstructor native typedarray.js:209",0x4423b298,~ +timer-event-end,"V8.CompileLazy",25241 +code-creation,LazyCompile,0,0x2b830880,908,"DataViewConstructor native typedarray.js:209",0x4423b298, +code-creation,KeyedStorePolymorphicIC,10,0x2b830c20,101,"" +code-creation,KeyedStorePolymorphicIC,10,0x2b830c20,101,"args_count: 0" +code-creation,CallIC,7,0x2b830ca0,144,"Instantiate" +code-creation,CallIC,7,0x2b830d40,129,"InstantiateFunction" +code-creation,LoadIC,5,0x2b830de0,103,"kApiFunctionCache" +code-creation,KeyedLoadPolymorphicIC,6,0x2b830e60,105,"" +code-creation,CallIC,7,0x2b830ee0,129,"ConfigureTemplateInstance" +code-creation,CallIC,7,0x2b830f80,129,"Instantiate" +code-creation,Stub,2,0x2b831020,116,"valueOf" +code-creation,LoadPolymorphicIC,5,0x2b8310a0,105,"valueOf" +code-creation,Stub,2,0x2b831120,98,"toString" +code-creation,LoadPolymorphicIC,5,0x2b8311a0,105,"toString" +code-creation,CallIC,7,0x2b831220,128,"ToPrimitive" +code-creation,CallIC,7,0x2b8312a0,128,"DefaultNumber" +code-creation,CallIC,7,0x2b831320,129,"ToObject" +code-creation,CallIC,7,0x2b8313c0,128,"IsPrimitive" +code-creation,CallIC,7,0x2b831440,129,"FunctionSourceString" +code-creation,CallIC,7,0x2b8314e0,128,"ToNumber" +tick,0xf776d430,25914,0,0x90ec418,0,0x2b82cda7,0x2b825c84,0x2b822ca7,0x2b82af24,0x2b81b4f0,0x2b82beff,0x2b81b59f,0x2b82beff,0x2b81b589,0x2b82b0b8,0x2b81b4f0 +timer-event-start,"V8.ParseLazy",25965 +timer-event-end,"V8.ParseLazy",25985 +timer-event-start,"V8.CompileLazy",25991 +timer-event-start,"V8.RecompileSynchronous",25996 +code-creation,LazyCompile,0,0x2b831560,184,"valueOf native v8natives.js:245",0x4421ee84,~ +timer-event-end,"V8.RecompileSynchronous",26121 +code-creation,LazyCompile,1,0x2b831620,180,"valueOf native v8natives.js:245",0x4421ee84,* +timer-event-end,"V8.CompileLazy",26138 +timer-event-start,"V8.ParseLazy",26144 +timer-event-end,"V8.ParseLazy",26156 +timer-event-start,"V8.CompileLazy",26161 +timer-event-start,"V8.RecompileSynchronous",26166 +code-creation,LazyCompile,0,0x2b8316e0,220,"IsPrimitive native runtime.js:636",0x44226330,~ +timer-event-end,"V8.RecompileSynchronous",26250 +code-creation,LazyCompile,1,0x2b8317c0,170,"IsPrimitive native runtime.js:636",0x44226330,* +timer-event-end,"V8.CompileLazy",26266 +timer-event-start,"V8.ParseLazy",26271 +timer-event-end,"V8.ParseLazy",26282 +timer-event-start,"V8.CompileLazy",26286 +timer-event-start,"V8.RecompileSynchronous",26291 +code-creation,LazyCompile,0,0x2b831880,184,"toString native v8natives.js:1721",0x44220834,~ +timer-event-end,"V8.RecompileSynchronous",26361 +code-creation,LazyCompile,1,0x2b831940,180,"toString native v8natives.js:1721",0x44220834,* +timer-event-end,"V8.CompileLazy",26376 +code-creation,LoadIC,5,0x2b831a00,103,"global" +code-creation,LoadIC,5,0x2b831a80,114,"ArrayBuffer" +code-creation,CallMiss,7,0x2b831b00,180,"args_count: 0" +code-creation,CallIC,7,0x2b831bc0,129,"SetUpArrayBuffer" +code-creation,LoadIC,5,0x2b831c60,103,"$ArrayBuffer" +code-creation,LoadIC,5,0x2b831ce0,103,"ArrayBufferConstructor" +code-creation,LazyCompile,0,0x2b82e180,324,"ArrayBufferConstructor native arraybuffer.js:34",0x4423a9a0, +code-creation,LoadIC,5,0x2b831d60,103,"$Object" +code-creation,LoadIC,5,0x2b831de0,103,"ArrayBufferGetByteLength" +code-creation,CallIC,7,0x2b831e60,129,"InstallGetter" +code-creation,LoadIC,5,0x2b831f00,103,"ArrayBufferSlice" +code-creation,CallIC,7,0x2b831f80,133,"$Array" +code-creation,CallIC,7,0x2b832020,129,"InstallFunctions" +code-creation,LoadPolymorphicIC,5,0x2b8320c0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b832140,105,"length" +code-creation,KeyedLoadPolymorphicIC,6,0x2b8321c0,105,"" +code-creation,LoadIC,5,0x2b832240,114,"Uint8Array" +code-creation,CallIC,7,0x2b8322c0,129,"SetupTypedArray" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832360,103,"$Object" +code-creation,LoadIC,5,0x2b8323e0,114,"Int8Array" +code-creation,CallIC,7,0x2b832460,129,"CreateTypedArrayConstructor" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832500,103,"TypedArrayGetBuffer" +code-creation,LoadIC,5,0x2b832580,103,"TypedArrayGetByteOffset" +code-creation,LoadIC,5,0x2b832600,103,"TypedArrayGetByteLength" +code-creation,LoadIC,5,0x2b832680,103,"TypedArrayGetLength" +code-creation,CallIC,7,0x2b832700,129,"CreateSubArray" +code-creation,LoadIC,5,0x2b8327a0,103,"TypedArraySet" +code-creation,CallIC,7,0x2b832820,133,"$Array" +code-creation,LoadIC,5,0x2b8328c0,114,"Uint16Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +tick,0xf776d430,26979,0,0x90ec418,0,0x2b82e9b7,0x2b82e593 +code-creation,LoadIC,5,0x2b832940,114,"Int16Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b8329c0,114,"Uint32Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832a40,114,"Int32Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832ac0,114,"Float32Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832b40,114,"Float64Array" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832bc0,114,"Uint8ClampedArray" +code-creation,LazyCompile,0,0x2b82f8a0,824," native typedarray.js:88",0x4423c580, +code-creation,LoadIC,5,0x2b832c40,114,"DataView" +code-creation,CallIC,7,0x2b832cc0,129,"SetupDataView" +code-creation,LoadIC,5,0x2b832d60,103,"$DataView" +code-creation,LoadIC,5,0x2b832de0,103,"DataViewConstructor" +code-creation,LazyCompile,0,0x2b830880,908,"DataViewConstructor native typedarray.js:209",0x4423b298, +code-creation,LoadIC,5,0x2b832e60,103,"DataViewGetBuffer" +code-creation,LoadIC,5,0x2b832ee0,103,"DataViewGetByteOffset" +code-creation,LoadIC,5,0x2b832f60,103,"DataViewGetByteLength" +code-creation,LoadIC,5,0x2b832fe0,103,"DataViewGetInt8" +code-creation,LoadIC,5,0x2b833060,103,"DataViewSetInt8" +code-creation,LoadIC,5,0x2b8330e0,103,"DataViewGetUint8" +code-creation,LoadIC,5,0x2b833160,103,"DataViewSetUint8" +code-creation,LoadIC,5,0x2b8331e0,103,"DataViewGetInt16" +code-creation,LoadIC,5,0x2b833260,103,"DataViewSetInt16" +code-creation,LoadIC,5,0x2b8332e0,103,"DataViewGetUint16" +code-creation,LoadIC,5,0x2b833360,103,"DataViewSetUint16" +code-creation,LoadIC,5,0x2b8333e0,103,"DataViewGetInt32" +code-creation,LoadIC,5,0x2b833460,103,"DataViewSetInt32" +code-creation,LoadIC,5,0x2b8334e0,103,"DataViewGetUint32" +code-creation,LoadIC,5,0x2b833560,103,"DataViewSetUint32" +code-creation,LoadIC,5,0x2b8335e0,103,"DataViewGetFloat32" +code-creation,LoadIC,5,0x2b833660,103,"DataViewSetFloat32" +code-creation,LoadIC,5,0x2b8336e0,103,"DataViewGetFloat64" +code-creation,LoadIC,5,0x2b833760,103,"DataViewSetFloat64" +code-creation,CallMiss,7,0x2b8337e0,189,"args_count: 32" +code-creation,CallIC,7,0x2b8338a0,136,"$Array" +code-creation,LoadIC,5,0x2b833940,93,"length" +timer-event-start,"V8.Parse",28734 +timer-event-start,"V8.PreParse",28760 +timer-event-end,"V8.PreParse",28785 +timer-event-start,"V8.PreParse",28796 +timer-event-end,"V8.PreParse",28803 +timer-event-start,"V8.PreParse",28810 +timer-event-end,"V8.PreParse",28817 +timer-event-start,"V8.PreParse",28828 +timer-event-end,"V8.PreParse",28862 +timer-event-start,"V8.PreParse",28872 +timer-event-end,"V8.PreParse",28878 +timer-event-start,"V8.PreParse",28884 +timer-event-end,"V8.PreParse",28890 +timer-event-start,"V8.PreParse",28905 +timer-event-end,"V8.PreParse",28931 +timer-event-start,"V8.PreParse",28938 +timer-event-end,"V8.PreParse",28970 +timer-event-start,"V8.PreParse",28980 +timer-event-end,"V8.PreParse",28989 +timer-event-start,"V8.PreParse",28995 +timer-event-end,"V8.PreParse",29005 +timer-event-start,"V8.PreParse",29012 +timer-event-end,"V8.PreParse",29019 +timer-event-start,"V8.PreParse",29026 +timer-event-end,"V8.PreParse",29045 +timer-event-start,"V8.PreParse",29052 +timer-event-end,"V8.PreParse",29059 +timer-event-start,"V8.PreParse",29066 +timer-event-end,"V8.PreParse",29072 +timer-event-start,"V8.PreParse",29078 +timer-event-end,"V8.PreParse",29087 +tick,0xf776d430,29099,0,0x0,2 +timer-event-start,"V8.PreParse",29187 +timer-event-end,"V8.PreParse",29241 +timer-event-start,"V8.PreParse",29253 +timer-event-end,"V8.PreParse",29261 +timer-event-start,"V8.PreParse",29274 +timer-event-end,"V8.PreParse",29286 +timer-event-start,"V8.PreParse",29293 +timer-event-end,"V8.PreParse",29305 +timer-event-start,"V8.PreParse",29314 +timer-event-end,"V8.PreParse",29324 +timer-event-start,"V8.PreParse",29331 +timer-event-end,"V8.PreParse",29344 +timer-event-start,"V8.PreParse",29355 +timer-event-end,"V8.PreParse",29369 +timer-event-start,"V8.PreParse",29375 +timer-event-end,"V8.PreParse",29391 +timer-event-start,"V8.PreParse",29400 +timer-event-end,"V8.PreParse",29408 +timer-event-start,"V8.PreParse",29416 +timer-event-end,"V8.PreParse",29422 +timer-event-start,"V8.PreParse",29435 +timer-event-end,"V8.PreParse",29442 +timer-event-start,"V8.PreParse",29448 +timer-event-end,"V8.PreParse",29461 +timer-event-start,"V8.PreParse",29467 +timer-event-end,"V8.PreParse",29480 +timer-event-start,"V8.PreParse",29489 +timer-event-end,"V8.PreParse",29508 +timer-event-start,"V8.PreParse",29516 +timer-event-end,"V8.PreParse",29547 +timer-event-start,"V8.PreParse",29561 +timer-event-end,"V8.PreParse",29579 +timer-event-start,"V8.PreParse",29587 +timer-event-end,"V8.PreParse",29605 +timer-event-start,"V8.PreParse",29613 +timer-event-end,"V8.PreParse",29639 +timer-event-start,"V8.PreParse",29646 +timer-event-end,"V8.PreParse",29667 +timer-event-start,"V8.PreParse",29677 +timer-event-end,"V8.PreParse",29702 +timer-event-start,"V8.PreParse",29709 +timer-event-end,"V8.PreParse",29735 +timer-event-start,"V8.PreParse",29741 +timer-event-end,"V8.PreParse",29758 +timer-event-start,"V8.PreParse",29764 +timer-event-end,"V8.PreParse",29773 +timer-event-start,"V8.PreParse",29781 +timer-event-end,"V8.PreParse",29796 +timer-event-start,"V8.PreParse",29805 +timer-event-end,"V8.PreParse",29813 +timer-event-start,"V8.PreParse",29821 +timer-event-end,"V8.PreParse",29839 +timer-event-start,"V8.PreParse",29847 +timer-event-end,"V8.PreParse",29861 +timer-event-start,"V8.PreParse",29868 +timer-event-end,"V8.PreParse",29873 +timer-event-start,"V8.PreParse",29880 +timer-event-end,"V8.PreParse",29908 +timer-event-start,"V8.PreParse",29914 +timer-event-end,"V8.PreParse",29923 +timer-event-start,"V8.PreParse",29930 +timer-event-end,"V8.PreParse",29937 +timer-event-start,"V8.PreParse",29944 +timer-event-end,"V8.PreParse",29955 +timer-event-start,"V8.PreParse",29960 +timer-event-end,"V8.PreParse",29970 +timer-event-start,"V8.PreParse",29977 +timer-event-end,"V8.PreParse",29982 +timer-event-start,"V8.PreParse",29989 +timer-event-end,"V8.PreParse",29999 +timer-event-start,"V8.PreParse",30031 +timer-event-end,"V8.PreParse",30041 +timer-event-start,"V8.PreParse",30047 +timer-event-end,"V8.PreParse",30054 +timer-event-start,"V8.PreParse",30060 +timer-event-end,"V8.PreParse",30069 +timer-event-start,"V8.PreParse",30080 +timer-event-end,"V8.PreParse",30106 +timer-event-start,"V8.PreParse",30113 +timer-event-end,"V8.PreParse",30121 +timer-event-start,"V8.PreParse",30127 +timer-event-end,"V8.PreParse",30133 +timer-event-start,"V8.PreParse",30139 +timer-event-end,"V8.PreParse",30148 +tick,0x825e06c,30162,0,0x0,2 +timer-event-start,"V8.PreParse",30217 +timer-event-end,"V8.PreParse",30285 +timer-event-start,"V8.PreParse",30293 +timer-event-end,"V8.PreParse",30319 +timer-event-start,"V8.PreParse",30326 +timer-event-end,"V8.PreParse",30344 +timer-event-start,"V8.PreParse",30350 +timer-event-end,"V8.PreParse",30367 +timer-event-start,"V8.PreParse",30374 +timer-event-end,"V8.PreParse",30385 +timer-event-start,"V8.PreParse",30392 +timer-event-end,"V8.PreParse",30400 +timer-event-start,"V8.PreParse",30407 +timer-event-end,"V8.PreParse",30415 +timer-event-start,"V8.PreParse",30429 +timer-event-end,"V8.PreParse",30446 +timer-event-start,"V8.PreParse",30456 +timer-event-end,"V8.PreParse",30461 +timer-event-start,"V8.PreParse",30469 +timer-event-end,"V8.PreParse",30480 +timer-event-start,"V8.PreParse",30488 +timer-event-end,"V8.PreParse",30497 +timer-event-start,"V8.PreParse",30503 +timer-event-end,"V8.PreParse",30511 +timer-event-start,"V8.PreParse",30517 +timer-event-end,"V8.PreParse",30528 +timer-event-start,"V8.PreParse",30535 +timer-event-end,"V8.PreParse",30539 +timer-event-start,"V8.PreParse",30546 +timer-event-end,"V8.PreParse",30550 +timer-event-start,"V8.PreParse",30568 +timer-event-end,"V8.PreParse",30577 +timer-event-start,"V8.PreParse",30586 +timer-event-end,"V8.PreParse",30591 +timer-event-start,"V8.PreParse",30600 +timer-event-end,"V8.PreParse",30610 +timer-event-start,"V8.PreParse",30616 +timer-event-end,"V8.PreParse",30621 +timer-event-start,"V8.PreParse",30630 +timer-event-end,"V8.PreParse",30638 +timer-event-start,"V8.PreParse",30649 +timer-event-end,"V8.PreParse",30665 +timer-event-start,"V8.PreParse",30672 +timer-event-end,"V8.PreParse",30682 +timer-event-start,"V8.PreParse",30692 +timer-event-end,"V8.PreParse",30706 +timer-event-start,"V8.PreParse",30719 +timer-event-end,"V8.PreParse",30730 +timer-event-start,"V8.PreParse",30737 +timer-event-end,"V8.PreParse",30749 +tick,0x82b07f6,31208,0,0x0,2 +tick,0x824d3ad,32274,0,0x0,2 +tick,0x82b07c6,33327,0,0x0,2 +tick,0x82b0804,34401,0,0x0,2 +tick,0x81fc62c,35474,0,0x0,2 +tick,0x81fc62c,36534,0,0x0,2 +tick,0x824e954,37593,0,0x0,2 +tick,0x82b07f3,38662,0,0x0,2 +tick,0x81fc625,39722,0,0x0,2 +tick,0x81fc61e,40783,0,0x0,2 +tick,0x821c1a1,41846,0,0x0,2 +tick,0x81fc62c,42913,0,0x0,2 +timer-event-start,"V8.PreParse",43415 +timer-event-end,"V8.PreParse",43428 +timer-event-start,"V8.PreParse",43446 +timer-event-end,"V8.PreParse",43481 +timer-event-end,"V8.Parse",43493 +timer-event-start,"V8.Compile",43498 +timer-event-start,"V8.CompileFullCode",43528 +timer-event-end,"V8.CompileFullCode",43671 +code-creation,Script,0,0x2b8339a0,6060,"bsuite/kraken-once/stanford-crypto-ccm.js",0x2f33b684,~ +timer-event-end,"V8.Compile",43688 +timer-event-start,"V8.Execute",43739 +timer-event-start,"V8.ParseLazy",43914 +timer-event-end,"V8.ParseLazy",43936 +timer-event-start,"V8.CompileLazy",43942 +timer-event-start,"V8.CompileFullCode",43947 +timer-event-end,"V8.CompileFullCode",43966 +tick,0x820b498,43978,0,0x0,0,0x2b83464f +code-creation,LazyCompile,0,0x2b835160,372,"sjcl.hash.sha256 bsuite/kraken-once/stanford-crypto-ccm.js:15",0x2f339fb0,~ +timer-event-end,"V8.CompileLazy",44194 +code-creation,Stub,2,0x2b8352e0,188,"KeyedLoadElementStub" +code-creation,KeyedLoadIC,6,0x2b8353a0,91,"" +code-creation,CallPreMonomorphic,7,0x2b835400,178,"args_count: 0" +timer-event-start,"V8.ParseLazy",44292 +timer-event-end,"V8.ParseLazy",44326 +timer-event-start,"V8.CompileLazy",44333 +timer-event-start,"V8.CompileFullCode",44340 +code-creation,Stub,12,0x2b8354c0,88,"BinaryOpStub_MOD_Alloc_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b835520,88,"BinaryOpStub_MUL_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",44389 +code-creation,LazyCompile,0,0x2b835580,906,"sjcl.hash.sha256.w bsuite/kraken-once/stanford-crypto-ccm.js:17",0x2f33a190,~ +timer-event-end,"V8.CompileLazy",44407 +code-creation,Stub,12,0x2b835920,167,"BinaryOpStub_MUL_Alloc_Smi+Smi" +code-creation,Stub,13,0x2b8359e0,122,"CompareICStub" +timer-event-start,"V8.ParseLazy",44439 +timer-event-end,"V8.ParseLazy",44460 +timer-event-start,"V8.CompileLazy",44465 +timer-event-start,"V8.CompileFullCode",44471 +code-creation,Stub,2,0x2b835a60,501,"MathPowStub" +timer-event-end,"V8.CompileFullCode",44505 +code-creation,LazyCompile,0,0x2b835c60,304,"pow native math.js:181",0x4422259c,~ +timer-event-end,"V8.CompileLazy",44517 +timer-event-start,"V8.ParseLazy",44522 +timer-event-end,"V8.ParseLazy",44534 +timer-event-start,"V8.CompileLazy",44539 +timer-event-start,"V8.CompileFullCode",44545 +code-creation,Stub,12,0x2b835da0,88,"BinaryOpStub_MUL_OverwriteLeft_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b835e00,88,"BinaryOpStub_BIT_OR_OverwriteLeft_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",44570 +code-creation,LazyCompile,0,0x2b835e60,228,"a bsuite/kraken-once/stanford-crypto-ccm.js:17",0x2f33d150,~ +timer-event-end,"V8.CompileLazy",44582 +timer-event-start,"V8.ParseLazy",44590 +timer-event-end,"V8.ParseLazy",44609 +timer-event-start,"V8.CompileLazy",44614 +timer-event-start,"V8.CompileFullCode",44619 +code-creation,Stub,12,0x2b835f60,88,"BinaryOpStub_SHR_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",44646 +code-creation,LazyCompile,0,0x2b835fc0,344,"floor native math.js:99",0x4422241c,~ +timer-event-end,"V8.CompileLazy",44657 +code-creation,Stub,13,0x2b836120,404,"CompareICStub" +code-creation,Stub,13,0x2b8362c0,232,"CompareICStub" +code-creation,Stub,13,0x2b8363c0,404,"CompareICStub" +code-creation,Stub,13,0x2b836560,240,"CompareICStub" +code-creation,Stub,12,0x2b836660,349,"BinaryOpStub_SHR_Alloc_Number+Smi" +code-creation,Stub,12,0x2b8367c0,246,"BinaryOpStub_SUB_Alloc_Number+Smi" +code-creation,Stub,12,0x2b8368c0,245,"BinaryOpStub_MUL_OverwriteLeft_Number+Number" +code-creation,Stub,12,0x2b8369c0,407,"BinaryOpStub_BIT_OR_OverwriteLeft_Number+Smi" +code-creation,Stub,2,0x2b836b60,1808,"RecordWriteStub" +code-creation,Stub,2,0x2b837280,606,"KeyedStoreElementStub" +code-creation,KeyedStoreIC,10,0x2b8374e0,91,"" +tick,0x31e6020f,45036,0,0x2b836b61,0,0x2b8357c1,0x2b835208,0x2b83464f +code-creation,LoadIC,5,0x2b837540,114,"Math" +code-creation,CallIC,7,0x2b8375c0,289,"floor" +code-creation,Stub,2,0x2b837700,80,"LoadFieldStub" +code-creation,Stub,2,0x2b837760,95,"N" +code-creation,LoadIC,5,0x2b8377c0,93,"N" +code-creation,CallIC,7,0x2b837820,113,"pow" +code-creation,Stub,2,0x2b8378a0,80,"LoadFieldStub" +code-creation,Stub,2,0x2b837900,95,"a" +code-creation,LoadIC,5,0x2b837960,93,"a" +code-creation,Stub,12,0x2b8379c0,190,"BinaryOpStub_MOD_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b837a80,181,"BinaryOpStub_MOD_Alloc_Smi+Smi" +timer-event-start,"V8.ParseLazy",45383 +timer-event-end,"V8.ParseLazy",45402 +timer-event-start,"V8.CompileLazy",45408 +timer-event-start,"V8.CompileFullCode",45413 +timer-event-end,"V8.CompileFullCode",45428 +code-creation,LazyCompile,0,0x2b837b40,264,"sjcl.hash.sha256.reset bsuite/kraken-once/stanford-crypto-ccm.js:16",0x2f33a070,~ +timer-event-end,"V8.CompileLazy",45442 +code-creation,StoreIC,9,0x2b837c60,138,"codec" +code-creation,StoreIC,9,0x2b837d00,141,"hex" +tick,0x8294f6f,46096,0,0xff820124,0,0x2b834ff0 +code-creation,StoreIC,9,0x2b837da0,171,"ccm" +timer-event-start,"V8.ParseLazy",46605 +timer-event-end,"V8.ParseLazy",46625 +timer-event-start,"V8.CompileLazy",46630 +timer-event-start,"V8.CompileFullCode",46635 +timer-event-end,"V8.CompileFullCode",46649 +code-creation,LazyCompile,0,0x2b837e60,300,"sjcl.test.TestCase bsuite/kraken-once/stanford-crypto-ccm.js:99",0x2f33b210,~ +timer-event-end,"V8.CompileLazy",46663 +timer-event-start,"V8.ParseLazy",46681 +timer-event-end,"V8.ParseLazy",46712 +timer-event-start,"V8.CompileLazy",46718 +timer-event-start,"V8.CompileFullCode",46725 +code-creation,CallInitialize,7,0x2b837fa0,178,"args_count: 4" +timer-event-end,"V8.CompileFullCode",46771 +code-creation,LazyCompile,0,0x2b838060,953,"sjcl.test.run bsuite/kraken-once/stanford-crypto-ccm.js:180",0x2f33b4b0,~ +timer-event-end,"V8.CompileLazy",46788 +code-creation,Stub,13,0x2b838420,485,"CompareICStub" +code-creation,CallIC,7,0x2b838620,128,"ToString" +code-creation,CallPreMonomorphic,7,0x2b8386a0,178,"args_count: 4" +timer-event-start,"V8.ParseLazy",46859 +timer-event-end,"V8.ParseLazy",46876 +timer-event-start,"V8.CompileLazy",46881 +timer-event-start,"V8.CompileFullCode",46888 +code-creation,CallInitialize,7,0x2b838760,178,"args_count: 5" +timer-event-end,"V8.CompileFullCode",46910 +code-creation,LazyCompile,0,0x2b838820,320,"browserUtil.cpsMap bsuite/kraken-once/stanford-crypto-ccm.js:63",0x2f33b030,~ +timer-event-end,"V8.CompileLazy",46922 +code-creation,CallPreMonomorphic,7,0x2b838960,178,"args_count: 5" +timer-event-start,"V8.ParseLazy",46937 +timer-event-end,"V8.ParseLazy",46959 +timer-event-start,"V8.CompileLazy",46965 +timer-event-start,"V8.CompileFullCode",46972 +code-creation,Stub,2,0x2b838a20,172,"FastNewContextStub" +timer-event-end,"V8.CompileFullCode",46995 +code-creation,LazyCompile,0,0x2b838ae0,420,"browserUtil.cpsIterate bsuite/kraken-once/stanford-crypto-ccm.js:49",0x2f33afd0,~ +timer-event-end,"V8.CompileLazy",47008 +timer-event-start,"V8.ParseLazy",47013 +timer-event-end,"V8.ParseLazy",47029 +timer-event-start,"V8.CompileLazy",47034 +timer-event-start,"V8.CompileFullCode",47041 +code-creation,Stub,2,0x2b838ca0,328,"CallFunctionStub_Args0_Recording" +timer-event-end,"V8.CompileFullCode",47070 +code-creation,LazyCompile,0,0x2b838e00,372,"go bsuite/kraken-once/stanford-crypto-ccm.js:50",0x2f33da7c,~ +timer-event-end,"V8.CompileLazy",47082 +timer-event-start,"V8.ParseLazy",47088 +timer-event-end,"V8.ParseLazy",47110 +timer-event-start,"V8.CompileLazy",47115 +timer-event-start,"V8.CompileFullCode",47121 +timer-event-end,"V8.CompileFullCode",47134 +code-creation,LazyCompile,0,0x2b838f80,236," bsuite/kraken-once/stanford-crypto-ccm.js:64",0x2f33d9d4,~ +timer-event-end,"V8.CompileLazy",47146 +tick,0xf776d430,47160,0,0x90ec418,2,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,KeyedLoadIC,6,0x2b839080,91,"" +timer-event-start,"V8.ParseLazy",47296 +timer-event-end,"V8.ParseLazy",47317 +timer-event-start,"V8.CompileLazy",47323 +timer-event-start,"V8.CompileFullCode",47329 +code-creation,CallInitialize,7,0x2b8390e0,178,"args_count: 3" +timer-event-end,"V8.CompileFullCode",47355 +code-creation,LazyCompile,0,0x2b8391a0,260," bsuite/kraken-once/stanford-crypto-ccm.js:192",0x2f33d920,~ +timer-event-end,"V8.CompileLazy",47368 +code-creation,CallPreMonomorphic,7,0x2b8392c0,178,"args_count: 3" +timer-event-start,"V8.ParseLazy",47390 +timer-event-end,"V8.ParseLazy",47409 +timer-event-start,"V8.CompileLazy",47415 +timer-event-start,"V8.CompileFullCode",47421 +timer-event-end,"V8.CompileFullCode",47438 +code-creation,LazyCompile,0,0x2b839380,344,"sjcl.test.TestCase.run bsuite/kraken-once/stanford-crypto-ccm.js:168",0x2f33b450,~ +timer-event-end,"V8.CompileLazy",47452 +timer-event-start,"V8.ParseLazy",47462 +timer-event-end,"V8.ParseLazy",47476 +timer-event-start,"V8.CompileLazy",47481 +timer-event-start,"V8.CompileFullCode",47485 +timer-event-end,"V8.CompileFullCode",47496 +code-creation,LazyCompile,0,0x2b8394e0,208,"valueOf native date.js:361",0x44218984,~ +timer-event-end,"V8.CompileLazy",47507 +timer-event-start,"V8.ParseLazy",47517 +timer-event-end,"V8.ParseLazy",47526 +timer-event-start,"V8.CompileLazy",47531 +timer-event-start,"V8.CompileFullCode",47536 +timer-event-end,"V8.CompileFullCode",47545 +code-creation,LazyCompile,0,0x2b8395c0,192,"browserUtil.pauseAndThen bsuite/kraken-once/stanford-crypto-ccm.js:47",0x2f33af70,~ +timer-event-end,"V8.CompileLazy",47557 +timer-event-start,"V8.ParseLazy",47561 +timer-event-end,"V8.ParseLazy",47571 +timer-event-start,"V8.CompileLazy",47576 +timer-event-start,"V8.CompileFullCode",47581 +timer-event-end,"V8.CompileFullCode",47591 +code-creation,LazyCompile,0,0x2b839680,192," bsuite/kraken-once/stanford-crypto-ccm.js:171",0x2f33dc70,~ +timer-event-end,"V8.CompileLazy",47602 +timer-event-start,"V8.ParseLazy",47608 +timer-event-end,"V8.ParseLazy",47674 +timer-event-start,"V8.CompileLazy",47681 +timer-event-start,"V8.CompileFullCode",47693 +code-creation,Stub,2,0x2b839740,196,"FastNewContextStub" +code-creation,Stub,12,0x2b839820,88,"BinaryOpStub_DIV_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",47755 +code-creation,LazyCompile,0,0x2b839880,716," bsuite/kraken-once/stanford-crypto-ccm.js:7235",0x2f33b5d0,~ +timer-event-end,"V8.CompileLazy",47768 +code-creation,Stub,12,0x2b839b60,196,"BinaryOpStub_DIV_Alloc_Smi+Smi" +timer-event-start,"V8.ParseLazy",47798 +timer-event-end,"V8.ParseLazy",47845 +timer-event-start,"V8.CompileLazy",47851 +timer-event-start,"V8.CompileFullCode",47863 +code-creation,Stub,12,0x2b839c40,88,"BinaryOpStub_MUL_OverwriteRight_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",47917 +code-creation,LazyCompile,0,0x2b839ca0,2065," bsuite/kraken-once/stanford-crypto-ccm.js:7243",0x2f33de10, +timer-event-end,"V8.CompileLazy",47930 +code-creation,Stub,12,0x2b83a4c0,167,"BinaryOpStub_MUL_OverwriteRight_Smi+Smi" +timer-event-start,"V8.ParseLazy",47958 +timer-event-end,"V8.ParseLazy",47986 +timer-event-start,"V8.CompileLazy",47992 +timer-event-start,"V8.CompileFullCode",47998 +code-creation,Stub,12,0x2b83a580,88,"BinaryOpStub_BIT_XOR_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",48031 +code-creation,LazyCompile,0,0x2b83a5e0,717,"sjcl.codec.hex.toBits bsuite/kraken-once/stanford-crypto-ccm.js:13",0x2f339e90,~ +timer-event-end,"V8.CompileLazy",48044 +timer-event-start,"V8.ParseLazy",48061 +timer-event-end,"V8.ParseLazy",48119 +timer-event-start,"V8.CompileLazy",48126 +timer-event-start,"V8.CompileFullCode",48135 +timer-event-end,"V8.CompileFullCode",48188 +code-creation,LazyCompile,0,0x2b83a8c0,1601,"DoConstructRegExp native regexp.js:39",0x44222a28,~ +timer-event-end,"V8.CompileLazy",48203 +timer-event-start,"V8.ParseLazy",48213 +tick,0x80eabd3,48226,0,0xff81fb44,2,0x2b821ae3,0x2b83a6a4,0x2b839e4e,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.ParseLazy",48288 +timer-event-start,"V8.CompileLazy",48309 +timer-event-start,"V8.CompileFullCode",48323 +timer-event-end,"V8.CompileFullCode",48372 +code-creation,LazyCompile,0,0x2b83af20,1284,"charAt native string.js:64",0x44215fa8,~ +timer-event-end,"V8.CompileLazy",48386 +code-creation,Stub,14,0x2b83b440,144,"CompareNilICStub(NullValue)(MonomorphicMap)" +code-creation,Stub,5,0x2b83b4e0,97,"StringLengthStub" +timer-event-start,"V8.ParseLazy",48435 +timer-event-end,"V8.ParseLazy",48536 +timer-event-start,"V8.CompileLazy",48543 +timer-event-start,"V8.CompileFullCode",48555 +code-creation,Stub,2,0x2b83b560,828,"SubStringStub" +timer-event-end,"V8.CompileFullCode",48640 +code-creation,LazyCompile,0,0x2b83b8a0,2428,"replace native string.js:213",0x44216248,~ +timer-event-end,"V8.CompileLazy",48654 +code-creation,StoreIC,9,0x2b83c220,135,"lastIndex" +code-creation,Stub,14,0x2b83c2c0,124,"CompareNilICStub(NullValue)(Null)" +code-creation,RegExp,4,0x2b83c340,758,"\\s|0x" +timer-event-start,"V8.ParseLazy",48827 +timer-event-end,"V8.ParseLazy",48873 +timer-event-start,"V8.CompileLazy",48879 +timer-event-start,"V8.CompileFullCode",48886 +timer-event-end,"V8.CompileFullCode",48916 +code-creation,LazyCompile,0,0x2b83c640,960,"substr native string.js:749",0x44216608,~ +timer-event-end,"V8.CompileLazy",48930 +code-creation,Stub,14,0x2b83ca00,144,"CompareNilICStub(NullValue)(MonomorphicMap)" +code-creation,Stub,13,0x2b83caa0,122,"CompareICStub" +timer-event-start,"V8.ParseLazy",48959 +timer-event-end,"V8.ParseLazy",49000 +timer-event-start,"V8.CompileLazy",49006 +timer-event-start,"V8.CompileFullCode",49012 +code-creation,Stub,12,0x2b83cb20,88,"BinaryOpStub_BIT_OR_Alloc_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b83cb80,88,"BinaryOpStub_SAR_Alloc_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",49062 +code-creation,LazyCompile,0,0x2b83cbe0,1096,"parseInt native v8natives.js:130",0x4421ec1c,~ +timer-event-end,"V8.CompileLazy",49075 +code-creation,Stub,12,0x2b83d040,399,"BinaryOpStub_BIT_XOR_Alloc_Number+Smi" +code-creation,CallIC,7,0x2b83d1e0,147,"substr" +code-creation,CallIC,7,0x2b83d280,129,"parseInt" +code-creation,Stub,2,0x2b83d320,1433,"RecordWriteStub" +code-creation,Stub,2,0x2b83d8c0,611,"RecordWriteStub" +code-creation,CallIC,7,0x2b83db40,656,"push" +timer-event-start,"V8.ParseLazy",49192 +timer-event-end,"V8.ParseLazy",49229 +timer-event-start,"V8.CompileLazy",49235 +timer-event-start,"V8.CompileFullCode",49242 +code-creation,Stub,12,0x2b83dde0,88,"BinaryOpStub_SAR_OverwriteRight_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b83de40,88,"BinaryOpStub_BIT_AND_OverwriteRight_Uninitialized+Uninitialized" +tick,0x8250358,49284,0,0xff81fe84,2,0x2b83a871,0x2b839e4e,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.CompileFullCode",49346 +code-creation,LazyCompile,0,0x2b83dea0,536,"sjcl.bitArray.clamp bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339b30,~ +timer-event-end,"V8.CompileLazy",49390 +timer-event-start,"V8.ParseLazy",49402 +timer-event-end,"V8.ParseLazy",49416 +timer-event-start,"V8.CompileLazy",49421 +timer-event-start,"V8.CompileFullCode",49426 +timer-event-end,"V8.CompileFullCode",49438 +code-creation,LazyCompile,0,0x2b83e0c0,248,"ceil native math.js:81",0x442222fc,~ +timer-event-end,"V8.CompileLazy",49450 +timer-event-start,"V8.ParseLazy",49466 +timer-event-end,"V8.ParseLazy",49529 +timer-event-start,"V8.CompileLazy",49535 +timer-event-start,"V8.CompileFullCode",49544 +code-creation,Stub,2,0x2b83e1c0,647,"FastCloneShallowArrayStub" +code-creation,Stub,12,0x2b83e460,88,"BinaryOpStub_SHL_Alloc_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b83e4c0,88,"BinaryOpStub_BIT_AND_OverwriteLeft_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b83e520,88,"BinaryOpStub_BIT_XOR_OverwriteLeft_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",49801 +code-creation,LazyCompile,0,0x2b83e580,3002,"sjcl.cipher.aes bsuite/kraken-once/stanford-crypto-ccm.js:4",0x2f339830,~ +timer-event-end,"V8.CompileLazy",49816 +timer-event-start,"V8.ParseLazy",49829 +timer-event-end,"V8.ParseLazy",49886 +timer-event-start,"V8.CompileLazy",49893 +timer-event-start,"V8.CompileFullCode",49902 +code-creation,Stub,12,0x2b83f140,88,"BinaryOpStub_BIT_XOR_OverwriteRight_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",49958 +code-creation,LazyCompile,0,0x2b83f1a0,2528,"sjcl.cipher.aes.w bsuite/kraken-once/stanford-crypto-ccm.js:6",0x2f339950,~ +timer-event-end,"V8.CompileLazy",49972 +code-creation,Stub,12,0x2b83fb80,167,"BinaryOpStub_SHL_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b83fc40,155,"BinaryOpStub_SAR_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b83fce0,167,"BinaryOpStub_MUL_OverwriteLeft_Smi+Smi" +code-creation,Stub,12,0x2b83fda0,146,"BinaryOpStub_BIT_XOR_OverwriteLeft_Smi+Smi" +code-creation,Stub,2,0x2b83fe40,1808,"RecordWriteStub" +code-creation,Stub,2,0x2b840560,554,"KeyedStoreElementStub" +code-creation,KeyedStoreIC,10,0x2b8407a0,91,"" +code-creation,Stub,12,0x2b840800,146,"BinaryOpStub_BIT_XOR_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b8408a0,146,"BinaryOpStub_BIT_XOR_OverwriteRight_Smi+Smi" +tick,0x82d1790,50347,0,0xff81fdb8,0,0x2b83f388,0x2b83e64a,0x2b839e65,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,12,0x2b840940,383,"BinaryOpStub_BIT_XOR_OverwriteLeft_Smi+Int32" +code-creation,Stub,12,0x2b840ac0,375,"BinaryOpStub_SHL_Alloc_Int32+Smi" +code-creation,Stub,12,0x2b840c40,325,"BinaryOpStub_SHR_Alloc_Int32+Smi" +code-creation,Stub,12,0x2b840da0,167,"BinaryOpStub_SHR_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b840e60,383,"BinaryOpStub_BIT_XOR_OverwriteLeft_Int32+Smi" +code-creation,Stub,2,0x2b840fe0,794,"ElementsTransitionAndStoreStub" +code-creation,KeyedStorePolymorphicIC,10,0x2b841300,107,"" +code-creation,KeyedStorePolymorphicIC,10,0x2b841300,107,"args_count: 0" +code-creation,Stub,2,0x2b841380,204,"KeyedLoadElementStub" +code-creation,KeyedLoadIC,6,0x2b841460,91,"" +code-creation,Stub,2,0x2b8414c0,405,"ElementsTransitionAndStoreStub" +code-creation,Stub,2,0x2b841660,554,"KeyedStoreElementStub" +code-creation,KeyedStorePolymorphicIC,10,0x2b8418a0,107,"" +code-creation,KeyedStorePolymorphicIC,10,0x2b8418a0,107,"args_count: 0" +code-creation,Stub,12,0x2b841920,233,"BinaryOpStub_MUL_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b841a20,407,"BinaryOpStub_BIT_XOR_OverwriteLeft_Number+Smi" +code-creation,Stub,12,0x2b841bc0,407,"BinaryOpStub_BIT_XOR_OverwriteLeft_Smi+Number" +code-creation,Stub,12,0x2b841d60,355,"BinaryOpStub_BIT_XOR_OverwriteLeft_Int32+Int32" +code-creation,Stub,12,0x2b841ee0,379,"BinaryOpStub_BIT_XOR_OverwriteLeft_Int32+Number" +code-creation,Stub,15,0x2b842060,144,"ToBooleanStub(Undefined,Smi)" +code-creation,Stub,2,0x2b842100,236,"KeyedStoreElementStub" +code-creation,KeyedStoreIC,10,0x2b842200,91,"" +code-creation,CallIC,7,0x2b842260,136,"slice" +code-creation,CallMegamorphic,7,0x2b842300,685,"args_count: 1" +code-creation,Stub,12,0x2b8425c0,146,"BinaryOpStub_ADD_OverwriteLeft_Smi+Smi" +code-creation,Stub,12,0x2b842660,148,"BinaryOpStub_SUB_Alloc_Smi+Smi" +code-creation,Stub,2,0x2b842700,301,"KeyedLoadElementStub" +code-creation,KeyedLoadIC,6,0x2b842840,91,"" +tick,0x817d391,51438,0,0xff81f9a4,0,0x2b83e81e,0x2b839e65,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,12,0x2b8428a0,190,"BinaryOpStub_MOD_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b842960,146,"BinaryOpStub_BIT_AND_OverwriteLeft_Smi+Smi" +code-creation,Stub,12,0x2b842a00,347,"BinaryOpStub_BIT_XOR_Alloc_Int32+Int32" +code-creation,Stub,12,0x2b842b60,214,"BinaryOpStub_SHL_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b842c40,375,"BinaryOpStub_SAR_Alloc_Int32+Smi" +code-creation,Stub,12,0x2b842dc0,375,"BinaryOpStub_BIT_AND_Alloc_Int32+Smi" +code-creation,CallIC,7,0x2b842f40,147,"replace" +code-creation,Stub,2,0x2b842fe0,76,"LoadFieldStub" +code-creation,LoadIC,5,0x2b843040,93,"lastIndex" +code-creation,Stub,2,0x2b8430a0,76,"LoadFieldStub" +code-creation,LoadIC,5,0x2b843100,93,"global" +code-creation,LoadIC,5,0x2b843160,103,"lastMatchInfoOverride" +code-creation,LoadIC,5,0x2b8431e0,103,"lastMatchInfo" +code-creation,LoadIC,5,0x2b843260,103,"sjcl" +code-creation,LoadIC,5,0x2b8432e0,93,"bitArray" +code-creation,CallIC,7,0x2b843340,113,"clamp" +code-creation,LoadIC,5,0x2b8433c0,93,"length" +code-creation,CallIC,7,0x2b843420,113,"ceil" +code-creation,CallIC,7,0x2b8434a0,136,"slice" +code-creation,Stub,12,0x2b843540,264,"BinaryOpStub_DIV_Alloc_Smi+Smi" +code-creation,Stub,12,0x2b843660,407,"BinaryOpStub_SAR_OverwriteRight_Number+Smi" +code-creation,Stub,12,0x2b843800,383,"BinaryOpStub_BIT_AND_OverwriteRight_Int32+Smi" +timer-event-start,"V8.ParseLazy",51907 +timer-event-end,"V8.ParseLazy",51924 +timer-event-start,"V8.CompileLazy",51930 +timer-event-start,"V8.CompileFullCode",51935 +code-creation,Stub,12,0x2b843980,88,"BinaryOpStub_SHL_OverwriteRight_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b8439e0,88,"BinaryOpStub_ADD_OverwriteRight_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",51966 +code-creation,LazyCompile,0,0x2b843a40,288,"sjcl.bitArray.partial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339b90,~ +timer-event-end,"V8.CompileLazy",51979 +code-creation,Stub,12,0x2b843b60,375,"BinaryOpStub_BIT_OR_Alloc_Int32+Smi" +code-creation,Stub,12,0x2b843ce0,247,"BinaryOpStub_MUL_Alloc_Smi+Number" +code-creation,Stub,12,0x2b843de0,268,"BinaryOpStub_ADD_OverwriteRight_Int32+Number" +code-creation,Stub,2,0x2b843f00,240,"KeyedStoreElementStub" +code-creation,KeyedStoreIC,10,0x2b844000,91,"" +code-creation,CallMiss,7,0x2b844060,178,"args_count: 3" +code-creation,CallIC,7,0x2b844120,113,"partial" +timer-event-start,"V8.ParseLazy",52165 +timer-event-end,"V8.ParseLazy",52210 +timer-event-start,"V8.CompileLazy",52217 +timer-event-start,"V8.CompileFullCode",52225 +code-creation,Stub,12,0x2b8441a0,88,"BinaryOpStub_SHR_OverwriteRight_Uninitialized+Uninitialized" +code-creation,CallInitialize,7,0x2b844200,178,"args_count: 6" +timer-event-end,"V8.CompileFullCode",52278 +code-creation,LazyCompile,0,0x2b8442c0,1057,"sjcl.mode.ccm.encrypt bsuite/kraken-once/stanford-crypto-ccm.js:19",0x2f33a250,~ +timer-event-end,"V8.CompileLazy",52296 +timer-event-start,"V8.ParseLazy",52306 +timer-event-end,"V8.ParseLazy",52324 +timer-event-start,"V8.CompileLazy",52329 +timer-event-start,"V8.CompileFullCode",52334 +timer-event-end,"V8.CompileFullCode",52349 +code-creation,LazyCompile,0,0x2b844700,336,"sjcl.bitArray.bitLength bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339ad0,~ +timer-event-end,"V8.CompileLazy",52362 +timer-event-start,"V8.ParseLazy",52375 +timer-event-end,"V8.ParseLazy",52388 +timer-event-start,"V8.CompileLazy",52392 +timer-event-start,"V8.CompileFullCode",52398 +timer-event-end,"V8.CompileFullCode",52420 +code-creation,LazyCompile,0,0x2b844860,236,"sjcl.bitArray.getPartial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339bf0,~ +timer-event-end,"V8.CompileLazy",52433 +code-creation,Stub,12,0x2b844960,264,"BinaryOpStub_DIV_Alloc_Int32+Number" +timer-event-start,"V8.ParseLazy",52455 +tick,0x8092495,52475,0,0xff81fcd0,2,0x2b844833,0x2b84437f,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.ParseLazy",52539 +timer-event-start,"V8.CompileLazy",52558 +timer-event-start,"V8.CompileFullCode",52577 +timer-event-end,"V8.CompileFullCode",52590 +code-creation,LazyCompile,0,0x2b844a80,248,"round native math.js:193",0x4422265c,~ +timer-event-end,"V8.CompileLazy",52602 +code-creation,CallIC,7,0x2b844b80,113,"getPartial" +code-creation,Stub,12,0x2b844c00,238,"BinaryOpStub_DIV_Alloc_Number+Number" +code-creation,CallIC,7,0x2b844d00,113,"round" +code-creation,Stub,12,0x2b844d80,167,"BinaryOpStub_SHR_OverwriteRight_Smi+Smi" +code-creation,CallPreMonomorphic,7,0x2b844e40,178,"args_count: 6" +timer-event-start,"V8.ParseLazy",52676 +timer-event-end,"V8.ParseLazy",52738 +timer-event-start,"V8.CompileLazy",52745 +timer-event-start,"V8.CompileFullCode",52753 +code-creation,Stub,12,0x2b844f00,88,"BinaryOpStub_SHL_OverwriteLeft_Uninitialized+Uninitialized" +code-creation,Stub,12,0x2b844f60,88,"BinaryOpStub_BIT_OR_OverwriteRight_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",52818 +code-creation,LazyCompile,0,0x2b844fc0,1838,"sjcl.mode.ccm.G bsuite/kraken-once/stanford-crypto-ccm.js:20",0x2f33a310,~ +timer-event-end,"V8.CompileLazy",52833 +code-creation,Stub,13,0x2b845700,241,"CompareICStub" +code-creation,Stub,12,0x2b845800,167,"BinaryOpStub_SHL_OverwriteLeft_Smi+Smi" +code-creation,Stub,12,0x2b8458c0,145,"BinaryOpStub_BIT_OR_OverwriteRight_Smi+Smi" +code-creation,Stub,12,0x2b845960,145,"BinaryOpStub_BIT_OR_OverwriteLeft_Smi+Smi" +code-creation,Stub,12,0x2b845a00,167,"BinaryOpStub_SHL_OverwriteRight_Smi+Smi" +timer-event-start,"V8.ParseLazy",52912 +timer-event-end,"V8.ParseLazy",52936 +timer-event-start,"V8.CompileLazy",52941 +timer-event-start,"V8.CompileFullCode",52947 +timer-event-end,"V8.CompileFullCode",52966 +code-creation,LazyCompile,0,0x2b845ac0,560,"sjcl.bitArray.concat bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a70,~ +timer-event-end,"V8.CompileLazy",52980 +code-creation,Stub,12,0x2b845d00,399,"BinaryOpStub_BIT_OR_Alloc_Number+Smi" +timer-event-start,"V8.ParseLazy",53013 +timer-event-end,"V8.ParseLazy",53049 +timer-event-start,"V8.CompileLazy",53055 +timer-event-start,"V8.CompileFullCode",53062 +timer-event-end,"V8.CompileFullCode",53095 +code-creation,LazyCompile,0,0x2b845ea0,1126,"sjcl.bitArray.P bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339cb0,~ +timer-event-end,"V8.CompileLazy",53110 +code-creation,Stub,13,0x2b846320,485,"CompareICStub" +code-creation,Stub,12,0x2b846520,383,"BinaryOpStub_BIT_OR_OverwriteRight_Int32+Smi" +code-creation,Stub,12,0x2b8466a0,383,"BinaryOpStub_SHL_OverwriteRight_Int32+Smi" +code-creation,Stub,12,0x2b846820,407,"BinaryOpStub_BIT_OR_OverwriteRight_Number+Smi" +timer-event-start,"V8.ParseLazy",53194 +timer-event-end,"V8.ParseLazy",53206 +timer-event-start,"V8.CompileLazy",53211 +timer-event-start,"V8.CompileFullCode",53216 +timer-event-end,"V8.CompileFullCode",53226 +code-creation,LazyCompile,0,0x2b8469c0,184,"sjcl.cipher.aes.encrypt bsuite/kraken-once/stanford-crypto-ccm.js:6",0x2f339890,~ +timer-event-end,"V8.CompileLazy",53243 +timer-event-start,"V8.ParseLazy",53249 +timer-event-end,"V8.ParseLazy",53325 +timer-event-start,"V8.CompileLazy",53332 +timer-event-start,"V8.CompileFullCode",53343 +code-creation,Stub,12,0x2b846a80,88,"BinaryOpStub_SUB_OverwriteLeft_Uninitialized+Uninitialized" +tick,0x8376055,53535,0,0x81bab7d,2,0x2b846a46,0x2b845312,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,2,0x2b846ae0,683,"FastCloneShallowArrayStub" +code-creation,Stub,11,0x2b846da0,132,"UnaryOpStubMinus(None)" +timer-event-end,"V8.CompileFullCode",53746 +code-creation,LazyCompile,0,0x2b846e40,3418,"sjcl.cipher.aes.H bsuite/kraken-once/stanford-crypto-ccm.js:7",0x2f3399b0,~ +timer-event-end,"V8.CompileLazy",53763 +code-creation,Stub,12,0x2b847ba0,375,"BinaryOpStub_BIT_XOR_Alloc_Smi+Int32" +code-creation,Stub,12,0x2b847d20,375,"BinaryOpStub_BIT_XOR_Alloc_Int32+Smi" +code-creation,Stub,12,0x2b847ea0,148,"BinaryOpStub_SUB_OverwriteLeft_Smi+Smi" +code-creation,Stub,15,0x2b847f40,164,"ToBooleanStub(Smi,HeapNumber)" +code-creation,CallMiss,7,0x2b848000,178,"args_count: 4" +code-creation,CallIC,7,0x2b8480c0,113,"P" +code-creation,LoadIC,5,0x2b848140,103,"undefined" +timer-event-start,"V8.ParseLazy",54007 +timer-event-end,"V8.ParseLazy",54027 +timer-event-start,"V8.CompileLazy",54032 +timer-event-start,"V8.CompileFullCode",54038 +timer-event-end,"V8.CompileFullCode",54052 +code-creation,LazyCompile,0,0x2b8481c0,388,"sjcl.bitArray.k bsuite/kraken-once/stanford-crypto-ccm.js:11",0x2f339d10,~ +timer-event-end,"V8.CompileLazy",54065 +code-creation,CallIC,7,0x2b848360,132,"H" +code-creation,LoadIC,5,0x2b848400,93,"a" +code-creation,Stub,2,0x2b848460,95,"h" +code-creation,LoadIC,5,0x2b8484c0,93,"h" +code-creation,CallIC,7,0x2b848520,132,"encrypt" +code-creation,Stub,12,0x2b8485c0,371,"BinaryOpStub_BIT_XOR_Alloc_Int32+Number" +timer-event-start,"V8.ParseLazy",54281 +timer-event-end,"V8.ParseLazy",54332 +timer-event-start,"V8.CompileLazy",54339 +timer-event-start,"V8.CompileFullCode",54347 +code-creation,Stub,2,0x2b848740,663,"FastCloneShallowArrayStub" +timer-event-end,"V8.CompileFullCode",54560 +code-creation,LazyCompile,0,0x2b8489e0,1221,"sjcl.mode.ccm.I bsuite/kraken-once/stanford-crypto-ccm.js:21",0x2f33a370,~ +timer-event-end,"V8.CompileLazy",54577 +tick,0x82f2dd2,54590,0,0xff81f67c,2,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,12,0x2b848ec0,371,"BinaryOpStub_BIT_XOR_Alloc_Number+Int32" +timer-event-start,"V8.ParseLazy",54663 +timer-event-end,"V8.ParseLazy",54685 +timer-event-start,"V8.CompileLazy",54691 +timer-event-start,"V8.CompileFullCode",54697 +code-creation,Stub,12,0x2b849040,88,"BinaryOpStub_SUB_OverwriteRight_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",54724 +code-creation,LazyCompile,0,0x2b8490a0,392,"sjcl.bitArray.bitSlice bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a10,~ +timer-event-end,"V8.CompileLazy",54737 +code-creation,Stub,12,0x2b849240,148,"BinaryOpStub_SUB_OverwriteRight_Smi+Smi" +code-creation,Stub,13,0x2b8492e0,494,"CompareICStub" +code-creation,CallMegamorphic,7,0x2b8494e0,685,"args_count: 2" +code-creation,Stub,12,0x2b8497a0,246,"BinaryOpStub_ADD_Alloc_Number+Smi" +code-creation,LoadPolymorphicIC,5,0x2b8498a0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b849920,105,"length" +timer-event-start,"V8.ParseLazy",54933 +timer-event-end,"V8.ParseLazy",54956 +timer-event-start,"V8.CompileLazy",54962 +timer-event-start,"V8.CompileFullCode",54968 +timer-event-end,"V8.CompileFullCode",54989 +code-creation,LazyCompile,0,0x2b8499a0,585,"sjcl.bitArray.equal bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339c50,~ +timer-event-end,"V8.CompileLazy",55003 +code-creation,Stub,12,0x2b849c00,395,"BinaryOpStub_BIT_XOR_Alloc_Number+Number" +code-creation,Stub,12,0x2b849da0,133,"BinaryOpStub_ADD_Alloc_String+Smi" +code-creation,Stub,12,0x2b849e40,133,"BinaryOpStub_ADD_OverwriteLeft_String+Smi" +timer-event-start,"V8.ParseLazy",55131 +timer-event-end,"V8.ParseLazy",55149 +timer-event-start,"V8.CompileLazy",55155 +timer-event-start,"V8.CompileFullCode",55160 +timer-event-end,"V8.CompileFullCode",55177 +code-creation,LazyCompile,0,0x2b849ee0,292,"sjcl.test.TestCase.require bsuite/kraken-once/stanford-crypto-ccm.js:131",0x2f33b390,~ +timer-event-end,"V8.CompileLazy",55190 +timer-event-start,"V8.ParseLazy",55198 +timer-event-end,"V8.ParseLazy",55206 +timer-event-start,"V8.CompileLazy",55211 +timer-event-start,"V8.CompileFullCode",55216 +timer-event-end,"V8.CompileFullCode",55228 +code-creation,LazyCompile,0,0x2b84a020,208,"sjcl.test.TestCase.pass bsuite/kraken-once/stanford-crypto-ccm.js:110",0x2f33b270,~ +timer-event-end,"V8.CompileLazy",55240 +code-creation,StoreIC,9,0x2b84a100,103,"passes" +timer-event-start,"V8.ParseLazy",55261 +timer-event-end,"V8.ParseLazy",55307 +timer-event-start,"V8.CompileLazy",55313 +timer-event-start,"V8.CompileFullCode",55321 +code-creation,Stub,12,0x2b84a180,88,"BinaryOpStub_DIV_OverwriteLeft_Uninitialized+Uninitialized" +timer-event-end,"V8.CompileFullCode",55365 +code-creation,LazyCompile,0,0x2b84a1e0,1229,"sjcl.mode.ccm.decrypt bsuite/kraken-once/stanford-crypto-ccm.js:19",0x2f33a2b0,~ +timer-event-end,"V8.CompileLazy",55379 +code-creation,CallIC,7,0x2b84a6c0,136,"slice" +code-creation,CallIC,7,0x2b84a760,128,"P" +code-creation,LoadPolymorphicIC,5,0x2b84a7e0,105,"length" +code-creation,KeyedLoadPolymorphicIC,6,0x2b84a860,105,"" +code-creation,CallIC,7,0x2b84a8e0,656,"push" +code-creation,Stub,12,0x2b84ab80,407,"BinaryOpStub_SHL_OverwriteRight_Number+Smi" +code-creation,LoadPolymorphicIC,5,0x2b84ad20,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84ada0,105,"length" +code-creation,CallIC,7,0x2b84ae20,136,"slice" +code-creation,Stub,12,0x2b84aec0,196,"BinaryOpStub_DIV_OverwriteLeft_Smi+Smi" +code-creation,Stub,2,0x2b84afa0,70,"k" +code-creation,LoadIC,5,0x2b84b000,93,"k" +code-creation,CallIC,7,0x2b84b060,113,"bitLength" +code-creation,CallIC,7,0x2b84b0e0,128,"partial" +code-creation,CallIC,7,0x2b84b160,113,"concat" +code-creation,LoadPolymorphicIC,5,0x2b84b1e0,105,"length" +code-creation,CallIC,7,0x2b84b260,136,"concat" +code-creation,CallIC,7,0x2b84b300,113,"bitSlice" +code-creation,CallIC,7,0x2b84b380,136,"concat" +tick,0x8118ca4,55654,0,0x90ec418,0,0x2b848b2e,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,CallIC,7,0x2b84b420,136,"slice" +code-creation,StoreIC,9,0x2b84b4c0,138,"tag" +code-creation,StoreIC,9,0x2b84b560,138,"data" +code-creation,Stub,12,0x2b84b600,214,"BinaryOpStub_SHL_OverwriteRight_Smi+Smi" +code-creation,LoadPolymorphicIC,5,0x2b84b6e0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84b760,105,"length" +code-creation,CallMiss,7,0x2b84b7e0,178,"args_count: 0" +code-creation,CallIC,7,0x2b84b8a0,132,"pass" +code-creation,Stub,2,0x2b84b940,76,"LoadFieldStub" +code-creation,LoadIC,5,0x2b84b9a0,93,"passes" +code-creation,LoadIC,5,0x2b84ba00,93,"key" +code-creation,LoadIC,5,0x2b84ba60,93,"cipher" +code-creation,Stub,2,0x2b84bac0,70,"aes" +code-creation,LoadIC,5,0x2b84bb20,93,"aes" +code-creation,CallIC,7,0x2b84bb80,113,"toBits" +code-creation,Stub,2,0x2b84bc00,95,"h" +code-creation,LoadIC,5,0x2b84bc60,93,"h" +code-creation,StoreIC,9,0x2b84bcc0,246,"a" +code-creation,LoadIC,5,0x2b84bdc0,93,"iv" +code-creation,Stub,2,0x2b84be20,76,"LoadFieldStub" +code-creation,LoadIC,5,0x2b84be80,93,"adata" +code-creation,LoadIC,5,0x2b84bee0,93,"pt" +code-creation,Stub,2,0x2b84bf40,76,"LoadFieldStub" +code-creation,LoadIC,5,0x2b84bfa0,93,"ct" +code-creation,LoadIC,5,0x2b84c000,93,"tag" +code-creation,LoadIC,5,0x2b84c060,93,"mode" +code-creation,LoadIC,5,0x2b84c0c0,93,"ccm" +code-creation,CallMiss,7,0x2b84c120,178,"args_count: 5" +code-creation,CallIC,7,0x2b84c1e0,113,"encrypt" +code-creation,CallMiss,7,0x2b84c260,178,"args_count: 6" +code-creation,CallIC,7,0x2b84c320,113,"G" +code-creation,CallIC,7,0x2b84c3a0,193,"pop" +code-creation,CallIC,7,0x2b84c480,113,"I" +code-creation,LoadIC,5,0x2b84c500,93,"data" +code-creation,LoadIC,5,0x2b84c560,93,"tag" +code-creation,CallIC,7,0x2b84c5c0,113,"equal" +code-creation,CallIC,7,0x2b84c640,132,"require" +code-creation,CallIC,7,0x2b84c6e0,113,"decrypt" +code-creation,CallIC,7,0x2b84c760,128,"bitSlice" +code-creation,CallMegamorphic,7,0x2b84c7e0,685,"args_count: 0" +tick,0xf776d430,56728,0,0x90ec418,0,0x2b84a349,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,15,0x2b84caa0,172,"ToBooleanStub(Undefined,Smi,HeapNumber)" +code-creation,CallIC,7,0x2b84cb60,193,"pop" +code-creation,Stub,2,0x2b84cc40,725,"ElementsTransitionAndStoreStub" +code-creation,Stub,2,0x2b84cf20,1800,"RecordWriteStub" +code-creation,Stub,2,0x2b84d640,578,"KeyedStoreElementStub" +code-creation,KeyedStorePolymorphicIC,10,0x2b84d8a0,107,"" +code-creation,KeyedStorePolymorphicIC,10,0x2b84d8a0,107,"args_count: 0" +timer-event-start,"V8.RecompileSynchronous",57494 +timer-event-start,"V8.ParseLazy",57505 +timer-event-end,"V8.ParseLazy",57586 +code-creation,LazyCompile,0,0x2b84d920,3418,"sjcl.cipher.aes.H bsuite/kraken-once/stanford-crypto-ccm.js:7",0x2f3399b0,~ +tick,0x8092457,57778,0,0x19e,2,0x2b846a46,0x2b8455f6,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.RecompileSynchronous",57904 +timer-event-start,"V8.RecompileConcurrent",57929 +code-creation,Stub,2,0x2b84e680,559,"ElementsTransitionAndStoreStub" +code-creation,KeyedStorePolymorphicIC,10,0x2b84e8c0,107,"" +code-creation,KeyedStorePolymorphicIC,10,0x2b84e8c0,107,"args_count: 0" +code-creation,LoadPolymorphicIC,5,0x2b84e940,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84e9c0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84ea40,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84eac0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b84eb40,105,"length" +timer-event-start,"V8.RecompileSynchronous",58447 +timer-event-start,"V8.ParseLazy",58457 +timer-event-end,"V8.ParseLazy",58501 +code-creation,LazyCompile,0,0x2b84ebc0,1096,"parseInt native v8natives.js:130",0x4421ec1c,~ +timer-event-end,"V8.RecompileSynchronous",58637 +timer-event-start,"V8.GCScavenger",58779 +timer-event-start,"V8.External",58787 +timer-event-end,"V8.External",58791 +tick,0x810f40c,58868,0,0x0,1 +timer-event-start,"V8.External",59191 +timer-event-end,"V8.External",59200 +timer-event-end,"V8.GCScavenger",59205 +timer-event-end,"V8.RecompileConcurrent",59219 +timer-event-start,"V8.RecompileConcurrent",59254 +timer-event-start,"V8.RecompileSynchronous",59271 +code-creation,LazyCompile,1,0x2b84f020,4592,"sjcl.cipher.aes.H bsuite/kraken-once/stanford-crypto-ccm.js:7",0x2f3399b0,* +timer-event-end,"V8.RecompileSynchronous",59549 +timer-event-end,"V8.RecompileConcurrent",59567 +timer-event-start,"V8.RecompileSynchronous",59590 +code-creation,LazyCompile,1,0x2b850220,1662,"parseInt native v8natives.js:130",0x4421ec1c,* +timer-event-end,"V8.RecompileSynchronous",59672 +timer-event-start,"V8.RecompileSynchronous",59682 +timer-event-start,"V8.ParseLazy",59687 +timer-event-end,"V8.ParseLazy",59701 +code-creation,LazyCompile,0,0x2b8508a0,236,"sjcl.bitArray.getPartial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339bf0,~ +timer-event-end,"V8.RecompileSynchronous",59750 +timer-event-start,"V8.RecompileConcurrent",59776 +timer-event-start,"V8.RecompileSynchronous",59811 +timer-event-start,"V8.ParseLazy",59820 +timer-event-end,"V8.ParseLazy",59838 +code-creation,LazyCompile,0,0x2b8509a0,388,"sjcl.bitArray.k bsuite/kraken-once/stanford-crypto-ccm.js:11",0x2f339d10,~ +timer-event-end,"V8.RecompileConcurrent",59909 +timer-event-start,"V8.RecompileConcurrent",59926 +timer-event-end,"V8.RecompileSynchronous",59933 +timer-event-start,"V8.RecompileSynchronous",59950 +tick,0xf776d430,59966,0,0x90ec418,2,0x2b8455e6,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LazyCompile,1,0x2b850b40,536,"sjcl.bitArray.getPartial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339bf0,* +timer-event-end,"V8.RecompileSynchronous",60077 +timer-event-start,"V8.RecompileSynchronous",60141 +timer-event-start,"V8.ParseLazy",60149 +timer-event-end,"V8.RecompileConcurrent",60177 +timer-event-end,"V8.ParseLazy",60195 +code-creation,LazyCompile,0,0x2b850d60,960,"substr native string.js:749",0x44216608,~ +timer-event-end,"V8.RecompileSynchronous",60329 +timer-event-start,"V8.RecompileConcurrent",60356 +code-deopt,60375,544 +timer-event-start,"V8.RecompileSynchronous",60409 +code-creation,LazyCompile,1,0x2b851120,1534,"sjcl.bitArray.k bsuite/kraken-once/stanford-crypto-ccm.js:11",0x2f339d10,* +timer-event-end,"V8.RecompileSynchronous",60474 +code-creation,LoadPolymorphicIC,5,0x2b851720,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b8517a0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b851820,105,"length" +timer-event-end,"V8.RecompileConcurrent",60691 +timer-event-start,"V8.RecompileSynchronous",60716 +code-creation,LazyCompile,1,0x2b8518a0,1792,"substr native string.js:749",0x44216608,* +timer-event-end,"V8.RecompileSynchronous",60803 +tick,0x2b849c4b,60997,0,0x2b849afa,0,0x2b83a0df,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileSynchronous",61042 +timer-event-start,"V8.ParseLazy",61054 +timer-event-end,"V8.ParseLazy",61066 +code-creation,LazyCompile,0,0x2b851fa0,184,"sjcl.cipher.aes.encrypt bsuite/kraken-once/stanford-crypto-ccm.js:6",0x2f339890,~ +timer-event-end,"V8.RecompileSynchronous",61112 +timer-event-start,"V8.RecompileConcurrent",61139 +timer-event-start,"V8.RecompileSynchronous",61159 +timer-event-start,"V8.ParseLazy",61168 +timer-event-end,"V8.ParseLazy",61186 +timer-event-end,"V8.RecompileConcurrent",61201 +code-creation,LazyCompile,0,0x2b852060,336,"sjcl.bitArray.bitLength bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339ad0,~ +timer-event-start,"V8.ParseLazy",61249 +timer-event-end,"V8.ParseLazy",61264 +timer-event-end,"V8.RecompileSynchronous",61290 +timer-event-start,"V8.RecompileSynchronous",61309 +timer-event-start,"V8.RecompileConcurrent",61317 +code-creation,LazyCompile,1,0x2b8521c0,196,"sjcl.cipher.aes.encrypt bsuite/kraken-once/stanford-crypto-ccm.js:6",0x2f339890,* +timer-event-end,"V8.RecompileSynchronous",61348 +timer-event-start,"V8.RecompileSynchronous",61374 +timer-event-start,"V8.ParseLazy",61381 +timer-event-end,"V8.ParseLazy",61394 +timer-event-end,"V8.RecompileSynchronous",61418 +timer-event-start,"V8.RecompileSynchronous",61424 +timer-event-start,"V8.ParseLazy",61429 +timer-event-end,"V8.ParseLazy",61442 +code-creation,LazyCompile,0,0x2b8522a0,248,"round native math.js:193",0x4422265c,~ +timer-event-end,"V8.RecompileConcurrent",61471 +timer-event-start,"V8.RecompileConcurrent",61480 +timer-event-end,"V8.RecompileSynchronous",61487 +timer-event-start,"V8.RecompileSynchronous",61512 +timer-event-end,"V8.RecompileConcurrent",61536 +timer-event-start,"V8.RecompileConcurrent",61543 +code-creation,LazyCompile,1,0x2b8523a0,888,"sjcl.bitArray.bitLength bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339ad0,* +timer-event-end,"V8.RecompileSynchronous",61565 +timer-event-start,"V8.RecompileSynchronous",61570 +code-creation,LazyCompile,1,0x2b852720,536,"sjcl.bitArray.getPartial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339bf0,* +timer-event-end,"V8.RecompileSynchronous",61599 +timer-event-start,"V8.RecompileSynchronous",61606 +timer-event-end,"V8.RecompileConcurrent",61610 +code-creation,LazyCompile,1,0x2b852940,242,"round native math.js:193",0x4422265c,* +timer-event-end,"V8.RecompileSynchronous",61629 +code-creation,LoadPolymorphicIC,5,0x2b852a40,105,"length" +timer-event-start,"V8.RecompileSynchronous",61726 +timer-event-start,"V8.ParseLazy",61731 +timer-event-end,"V8.ParseLazy",61757 +code-creation,LazyCompile,0,0x2b852ac0,536,"sjcl.bitArray.clamp bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339b30,~ +timer-event-start,"V8.ParseLazy",61847 +timer-event-end,"V8.ParseLazy",61865 +code-creation,Function,0,0x2b852ce0,288,"sjcl.bitArray.partial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339b90,~ +timer-event-end,"V8.RecompileSynchronous",61926 +timer-event-start,"V8.RecompileSynchronous",61933 +timer-event-start,"V8.ParseLazy",61939 +timer-event-end,"V8.ParseLazy",61953 +timer-event-start,"V8.RecompileConcurrent",61961 +code-creation,LazyCompile,0,0x2b852e00,248,"ceil native math.js:81",0x442222fc,~ +timer-event-end,"V8.RecompileSynchronous",62019 +tick,0x811e913,62060,0,0xf773bff4,2,0x2b83dfae,0x2b8445e0,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-deopt,62122,544 +timer-event-end,"V8.RecompileConcurrent",62287 +timer-event-start,"V8.RecompileConcurrent",62297 +timer-event-start,"V8.RecompileSynchronous",62309 +timer-event-end,"V8.RecompileConcurrent",62353 +code-creation,Stub,2,0x2b852f00,1785,"RecordWriteStub" +code-creation,LazyCompile,1,0x2b853600,1514,"sjcl.bitArray.clamp bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339b30,* +timer-event-end,"V8.RecompileSynchronous",62415 +timer-event-start,"V8.RecompileSynchronous",62421 +code-creation,LazyCompile,1,0x2b853c00,242,"ceil native math.js:81",0x442222fc,* +timer-event-end,"V8.RecompileSynchronous",62445 +code-creation,LoadPolymorphicIC,5,0x2b853d00,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b853d80,105,"length" +timer-event-start,"V8.RecompileSynchronous",63048 +timer-event-start,"V8.ParseLazy",63067 +timer-event-end,"V8.ParseLazy",63085 +timer-event-end,"V8.RecompileSynchronous",63117 +tick,0xf776d430,63132,0,0x90ec418,0,0x2b8462cc,0x2b845cd7,0x2b848b0a,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileConcurrent",63203 +timer-event-end,"V8.RecompileConcurrent",63315 +timer-event-start,"V8.RecompileSynchronous",63329 +code-creation,LazyCompile,1,0x2b853e00,644,"sjcl.bitArray.partial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339b90,* +timer-event-end,"V8.RecompileSynchronous",63379 +timer-event-start,"V8.RecompileSynchronous",63494 +timer-event-start,"V8.ParseLazy",63503 +timer-event-end,"V8.ParseLazy",63517 +timer-event-end,"V8.RecompileSynchronous",63544 +timer-event-start,"V8.RecompileConcurrent",63572 +timer-event-start,"V8.RecompileSynchronous",63641 +timer-event-start,"V8.ParseLazy",63651 +timer-event-end,"V8.RecompileConcurrent",63664 +timer-event-end,"V8.ParseLazy",63678 +code-creation,LazyCompile,0,0x2b8540a0,560,"sjcl.bitArray.concat bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a70,~ +timer-event-start,"V8.ParseLazy",63757 +timer-event-end,"V8.ParseLazy",63772 +timer-event-start,"V8.ParseLazy",63808 +timer-event-end,"V8.ParseLazy",63848 +code-creation,Function,0,0x2b8542e0,1126,"sjcl.bitArray.P bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339cb0,~ +timer-event-start,"V8.ParseLazy",63977 +timer-event-end,"V8.ParseLazy",63994 +timer-event-start,"V8.ParseLazy",64023 +timer-event-end,"V8.ParseLazy",64039 +timer-event-end,"V8.RecompileSynchronous",64072 +timer-event-start,"V8.RecompileSynchronous",64079 +timer-event-start,"V8.RecompileConcurrent",64099 +code-creation,LazyCompile,1,0x2b854760,536,"sjcl.bitArray.getPartial bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339bf0,* +timer-event-end,"V8.RecompileSynchronous",64194 +tick,0xf776d430,64209,0,0x4059,2,0x2b845c29,0x2b848b0a,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-deopt,64271,544 +timer-event-start,"V8.RecompileSynchronous",64467 +timer-event-start,"V8.ParseLazy",64476 +timer-event-end,"V8.ParseLazy",64542 +code-creation,LazyCompile,0,0x2b854980,3002,"sjcl.cipher.aes bsuite/kraken-once/stanford-crypto-ccm.js:4",0x2f339830,~ +timer-event-end,"V8.RecompileSynchronous",64818 +timer-event-end,"V8.RecompileConcurrent",64871 +timer-event-start,"V8.RecompileConcurrent",64883 +timer-event-start,"V8.RecompileSynchronous",64890 +code-creation,LazyCompile,1,0x2b855540,3364,"sjcl.bitArray.concat bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a70,* +timer-event-end,"V8.RecompileSynchronous",65047 +code-deopt,65079,4608 +code-creation,LoadPolymorphicIC,5,0x2b856280,105,"length" +tick,0x2b8472a7,65264,0,0x52f0b0e1,0,0x2b852252,0x2b848c4b,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LoadPolymorphicIC,5,0x2b856300,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b856380,105,"length" +timer-event-start,"V8.GCScavenger",65757 +timer-event-start,"V8.External",65766 +timer-event-end,"V8.External",65770 +timer-event-start,"V8.External",66154 +timer-event-end,"V8.External",66162 +timer-event-end,"V8.GCScavenger",66166 +timer-event-end,"V8.RecompileConcurrent",66181 +timer-event-start,"V8.RecompileSynchronous",66254 +tick,0x81c09b0,66332,0,0x91632e8,2,0x2b839e65,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,2,0x2b856400,1785,"RecordWriteStub" +code-creation,Stub,2,0x2b856b00,1785,"RecordWriteStub" +code-creation,Stub,2,0x2b857200,783,"RecordWriteStub" +code-creation,Stub,2,0x2b857520,1772,"RecordWriteStub" +code-creation,Stub,2,0x2b857c20,1785,"RecordWriteStub" +code-creation,LazyCompile,1,0x2b858320,4397,"sjcl.cipher.aes bsuite/kraken-once/stanford-crypto-ccm.js:4",0x2f339830,* +timer-event-end,"V8.RecompileSynchronous",66661 +timer-event-start,"V8.RecompileSynchronous",66788 +timer-event-start,"V8.ParseLazy",66797 +timer-event-end,"V8.ParseLazy",66878 +timer-event-end,"V8.RecompileSynchronous",67067 +timer-event-start,"V8.RecompileConcurrent",67094 +tick,0x2b8473da,67403,0,0x2f392d35,0,0x2b852252,0x2b8455f6,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.RecompileConcurrent",68064 +timer-event-start,"V8.RecompileSynchronous",68081 +code-creation,LazyCompile,1,0x2b859460,4752,"sjcl.cipher.aes.H bsuite/kraken-once/stanford-crypto-ccm.js:7",0x2f3399b0,* +timer-event-end,"V8.RecompileSynchronous",68294 +code-creation,LoadPolymorphicIC,5,0x2b85a700,105,"length" +tick,0x2b85055a,68462,0,0x527b30d9,0,0x2b83a782,0x2b839f55,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",69250 +timer-event-start,"V8.External",69260 +timer-event-end,"V8.External",69264 +timer-event-start,"V8.External",69314 +timer-event-end,"V8.External",69320 +timer-event-end,"V8.GCScavenger",69324 +tick,0x82ec00c,69525,0,0xff81fcf4,0,0x2b85056f,0x2b83a782,0x2b839fd2,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LoadPolymorphicIC,5,0x2b85a780,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b85a800,117,"length" +code-creation,LoadPolymorphicIC,5,0x2b85a880,117,"length" +code-creation,LoadPolymorphicIC,5,0x2b85a900,117,"length" +code-creation,LoadPolymorphicIC,5,0x2b85a980,117,"length" +code-creation,LoadPolymorphicIC,5,0x2b85aa00,117,"length" +tick,0x81168ba,70588,0,0x90d5060,0,0x2b85056f,0x2b83a782,0x2b839f04,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileSynchronous",71064 +timer-event-start,"V8.ParseLazy",71076 +timer-event-end,"V8.ParseLazy",71094 +code-creation,LazyCompile,0,0x2b85aa80,292,"sjcl.test.TestCase.require bsuite/kraken-once/stanford-crypto-ccm.js:131",0x2f33b390,~ +timer-event-start,"V8.ParseLazy",71142 +timer-event-end,"V8.ParseLazy",71152 +code-creation,Function,0,0x2b85abc0,208,"sjcl.test.TestCase.pass bsuite/kraken-once/stanford-crypto-ccm.js:110",0x2f33b270,~ +timer-event-end,"V8.RecompileSynchronous",71195 +timer-event-start,"V8.RecompileSynchronous",71204 +timer-event-start,"V8.ParseLazy",71210 +timer-event-start,"V8.RecompileConcurrent",71216 +timer-event-end,"V8.ParseLazy",71228 +timer-event-end,"V8.RecompileSynchronous",71254 +timer-event-end,"V8.RecompileConcurrent",71304 +timer-event-start,"V8.RecompileConcurrent",71312 +timer-event-start,"V8.RecompileSynchronous",71316 +code-creation,LazyCompile,1,0x2b85aca0,322,"sjcl.test.TestCase.require bsuite/kraken-once/stanford-crypto-ccm.js:131",0x2f33b390,* +timer-event-end,"V8.RecompileSynchronous",71361 +timer-event-start,"V8.RecompileSynchronous",71367 +timer-event-end,"V8.RecompileConcurrent",71373 +code-creation,LazyCompile,1,0x2b85ae00,198,"sjcl.test.TestCase.pass bsuite/kraken-once/stanford-crypto-ccm.js:110",0x2f33b270,* +timer-event-end,"V8.RecompileSynchronous",71390 +tick,0x2b83c3b1,71653,0,0xffffff6b,0,0x2b83bd35,0x2b83a725,0x2b839f55,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",72513 +timer-event-start,"V8.External",72524 +timer-event-end,"V8.External",72530 +timer-event-start,"V8.External",72583 +timer-event-end,"V8.External",72591 +timer-event-end,"V8.GCScavenger",72596 +tick,0x8116878,72711,0,0x90d5060,0,0x2b85056f,0x2b83a782,0x2b839f04,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,CallIC,7,0x2b85aee0,136,"concat" +timer-event-start,"V8.RecompileSynchronous",72947 +timer-event-start,"V8.ParseLazy",72956 +timer-event-end,"V8.ParseLazy",72977 +code-creation,LazyCompile,0,0x2b85af80,392,"sjcl.bitArray.bitSlice bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a10,~ +timer-event-start,"V8.ParseLazy",73044 +timer-event-end,"V8.ParseLazy",73083 +timer-event-start,"V8.ParseLazy",73169 +timer-event-end,"V8.ParseLazy",73185 +timer-event-start,"V8.ParseLazy",73217 +timer-event-end,"V8.ParseLazy",73232 +timer-event-start,"V8.ParseLazy",73263 +timer-event-end,"V8.ParseLazy",73289 +timer-event-start,"V8.ParseLazy",73339 +timer-event-end,"V8.ParseLazy",73356 +timer-event-end,"V8.RecompileSynchronous",73393 +timer-event-start,"V8.RecompileConcurrent",73422 +tick,0x82eea09,73786,0,0x90de9b0,0,0x2b85056f,0x2b83a782,0x2b839e4e,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.ParseLazy",74228 +timer-event-end,"V8.RecompileConcurrent",74243 +timer-event-end,"V8.ParseLazy",74259 +timer-event-start,"V8.CompileLazy",74267 +timer-event-start,"V8.CompileFullCode",74273 +timer-event-end,"V8.CompileFullCode",74291 +code-creation,LazyCompile,0,0x2b85b120,332," bsuite/kraken-once/stanford-crypto-ccm.js:55",0x2f33db50,~ +timer-event-end,"V8.CompileLazy",74304 +timer-event-start,"V8.RecompileSynchronous",74351 +code-creation,LazyCompile,1,0x2b85b280,4132,"sjcl.bitArray.bitSlice bsuite/kraken-once/stanford-crypto-ccm.js:9",0x2f339a10,* +timer-event-end,"V8.RecompileSynchronous",74533 +tick,0x2b85a2b8,74843,0,0xf5,0,0x2b852252,0x2b8454f6,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b84a934,75905,0,0x2b855c42,0,0x2b8446a3,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",76182 +timer-event-start,"V8.External",76193 +timer-event-end,"V8.External",76197 +timer-event-start,"V8.External",76251 +timer-event-end,"V8.External",76258 +timer-event-end,"V8.GCScavenger",76262 +tick,0x81168ba,76974,0,0x90d5060,0,0x2b85056f,0x2b83a782,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x81168ba,78047,0,0x90d5060,0,0x2b85056f,0x2b83a782,0x2b839f55,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileSynchronous",78403 +timer-event-start,"V8.ParseLazy",78415 +timer-event-end,"V8.ParseLazy",78444 +code-creation,LazyCompile,0,0x2b85c2c0,717,"sjcl.codec.hex.toBits bsuite/kraken-once/stanford-crypto-ccm.js:13",0x2f339e90,~ +timer-event-start,"V8.ParseLazy",78530 +timer-event-end,"V8.ParseLazy",78559 +timer-event-start,"V8.ParseLazy",78614 +timer-event-end,"V8.ParseLazy",78632 +timer-event-end,"V8.RecompileSynchronous",78666 +timer-event-start,"V8.RecompileConcurrent",78695 +timer-event-end,"V8.RecompileConcurrent",79073 +timer-event-start,"V8.RecompileSynchronous",79089 +tick,0x2b859d1c,79108,0,0x6,0,0x2b852252,0x2b8455f6,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,2,0x2b85c5a0,1421,"StringAddStub" +code-creation,LazyCompile,1,0x2b85cb40,2261,"sjcl.codec.hex.toBits bsuite/kraken-once/stanford-crypto-ccm.js:13",0x2f339e90,* +timer-event-end,"V8.RecompileSynchronous",79251 +timer-event-start,"V8.GCScavenger",79473 +timer-event-start,"V8.External",79482 +timer-event-end,"V8.External",79486 +timer-event-start,"V8.External",79534 +timer-event-end,"V8.External",79540 +timer-event-end,"V8.GCScavenger",79544 +tick,0x2b85b446,80176,0,0x256b20d1,0,0x2b848b8c,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x80c4222,81235,0,0x90d5060,0,0x2b85b578,0x2b84a349,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",82255 +timer-event-start,"V8.External",82266 +timer-event-end,"V8.External",82270 +tick,0x2b858631,82290,0,0x2b80a276,0,0x2b839e65,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.External",82339 +timer-event-end,"V8.External",82349 +timer-event-end,"V8.GCScavenger",82353 +tick,0x2b82f581,83363,0,0x2b84539a,0,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x808cf8f,84440,0,0x90dabb0,0,0x2b85599a,0x2b845482,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",85035 +timer-event-start,"V8.External",85046 +timer-event-end,"V8.External",85050 +timer-event-start,"V8.External",85093 +timer-event-end,"V8.External",85099 +timer-event-end,"V8.GCScavenger",85103 +tick,0x2b829c56,85495,0,0x3e60ce29,0,0x2b852252,0x2b8454f6,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x808b74f,86567,0,0x2f308081,0,0x2b8537a0,0x2b8456a8,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b85d04c,87632,0,0x2b839f55,0,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",87755 +timer-event-start,"V8.External",87766 +timer-event-end,"V8.External",87770 +timer-event-start,"V8.External",87822 +timer-event-end,"V8.External",87829 +timer-event-end,"V8.GCScavenger",87833 +timer-event-start,"V8.RecompileSynchronous",88294 +timer-event-start,"V8.ParseLazy",88303 +timer-event-end,"V8.ParseLazy",88361 +code-creation,LazyCompile,0,0x2b85d420,1221,"sjcl.mode.ccm.I bsuite/kraken-once/stanford-crypto-ccm.js:21",0x2f33a370,~ +timer-event-start,"V8.ParseLazy",88473 +timer-event-end,"V8.ParseLazy",88492 +timer-event-start,"V8.ParseLazy",88532 +timer-event-end,"V8.ParseLazy",88545 +timer-event-start,"V8.ParseLazy",88572 +timer-event-end,"V8.ParseLazy",88588 +timer-event-start,"V8.ParseLazy",88612 +timer-event-end,"V8.ParseLazy",88645 +timer-event-start,"V8.ParseLazy",88688 +timer-event-end,"V8.ParseLazy",88714 +tick,0x81fc61b,88727,0,0xff81ebbc,2,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.ParseLazy",88792 +timer-event-end,"V8.ParseLazy",88867 +timer-event-start,"V8.ParseLazy",88951 +timer-event-end,"V8.ParseLazy",88967 +timer-event-start,"V8.ParseLazy",88996 +timer-event-end,"V8.ParseLazy",89012 +timer-event-end,"V8.RecompileSynchronous",89134 +timer-event-start,"V8.RecompileConcurrent",89160 +timer-event-start,"V8.RecompileSynchronous",89215 +timer-event-start,"V8.ParseLazy",89224 +timer-event-end,"V8.ParseLazy",89245 +code-creation,LazyCompile,0,0x2b85d900,585,"sjcl.bitArray.equal bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339c50,~ +timer-event-start,"V8.ParseLazy",89309 +timer-event-end,"V8.ParseLazy",89326 +timer-event-start,"V8.ParseLazy",89356 +timer-event-end,"V8.ParseLazy",89369 +timer-event-start,"V8.ParseLazy",89391 +timer-event-end,"V8.ParseLazy",89406 +timer-event-start,"V8.ParseLazy",89433 +timer-event-end,"V8.ParseLazy",89445 +timer-event-end,"V8.RecompileSynchronous",89485 +timer-event-start,"V8.RecompileSynchronous",89730 +timer-event-start,"V8.ParseLazy",89740 +tick,0x81168ba,89761,0,0x90d5060,0,0x2b85056f,0x2b85cd2d,0x2b839f04,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.ParseLazy",89805 +code-creation,LazyCompile,0,0x2b85db60,1838,"sjcl.mode.ccm.G bsuite/kraken-once/stanford-crypto-ccm.js:20",0x2f33a310,~ +timer-event-start,"V8.ParseLazy",89969 +timer-event-end,"V8.ParseLazy",89990 +timer-event-start,"V8.ParseLazy",90016 +timer-event-end,"V8.ParseLazy",90042 +timer-event-start,"V8.ParseLazy",90084 +timer-event-end,"V8.ParseLazy",90098 +timer-event-start,"V8.ParseLazy",90129 +timer-event-end,"V8.ParseLazy",90170 +timer-event-start,"V8.ParseLazy",90271 +timer-event-end,"V8.ParseLazy",90286 +timer-event-start,"V8.ParseLazy",90326 +timer-event-end,"V8.ParseLazy",90344 +timer-event-end,"V8.RecompileSynchronous",90480 +tick,0x2b8596f9,90829,0,0x8,0,0x2b852252,0x2b8454f6,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.RecompileConcurrent",91133 +timer-event-start,"V8.RecompileConcurrent",91145 +timer-event-start,"V8.RecompileSynchronous",91197 +code-creation,Stub,2,0x2b85e2a0,1800,"RecordWriteStub" +code-creation,Stub,2,0x2b85e9c0,1805,"RecordWriteStub" +code-creation,Stub,2,0x2b85f0e0,1785,"RecordWriteStub" +code-creation,Stub,2,0x2b85f7e0,1797,"RecordWriteStub" +timer-event-end,"V8.RecompileConcurrent",91529 +timer-event-start,"V8.RecompileConcurrent",91540 +code-creation,Stub,2,0x2b85ff00,1789,"RecordWriteStub" +code-creation,Stub,2,0x2b860600,1805,"RecordWriteStub" +code-creation,LazyCompile,1,0x2b860d20,9288,"sjcl.mode.ccm.I bsuite/kraken-once/stanford-crypto-ccm.js:21",0x2f33a370,* +timer-event-end,"V8.RecompileSynchronous",91729 +timer-event-start,"V8.RecompileSynchronous",91735 +code-creation,LazyCompile,1,0x2b863180,2119,"sjcl.bitArray.equal bsuite/kraken-once/stanford-crypto-ccm.js:10",0x2f339c50,* +timer-event-end,"V8.RecompileSynchronous",91833 +tick,0xf74c34b6,91883,0,0x90ebc51,2,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-deopt,91990,9312 +code-creation,LoadPolymorphicIC,5,0x2b8639e0,105,"length" +tick,0x2b859a99,92950,0,0x4,0,0x2b852252,0x2b8455f6,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",93234 +timer-event-start,"V8.External",93245 +timer-event-end,"V8.External",93249 +timer-event-end,"V8.RecompileConcurrent",93304 +timer-event-start,"V8.External",93319 +timer-event-end,"V8.External",93327 +timer-event-end,"V8.GCScavenger",93331 +timer-event-start,"V8.RecompileSynchronous",93353 +code-creation,Stub,2,0x2b863a60,1800,"RecordWriteStub" +code-creation,Stub,2,0x2b864180,1780,"RecordWriteStub" +code-creation,LazyCompile,1,0x2b864880,7990,"sjcl.mode.ccm.G bsuite/kraken-once/stanford-crypto-ccm.js:20",0x2f33a310,* +timer-event-end,"V8.RecompileSynchronous",93732 +code-creation,LoadPolymorphicIC,5,0x2b8667c0,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b866840,105,"length" +code-creation,LoadPolymorphicIC,5,0x2b8668c0,105,"length" +tick,0x2b848cbd,94006,0,0xa,0,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LoadPolymorphicIC,5,0x2b866940,105,"length" +tick,0x8231000,95074,0,0x90d5060,0,0x2b848e54,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x83b9d75,96149,0,0x527db159,0,0x2b82364b,0x2b83a13d,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",96446 +timer-event-start,"V8.External",96457 +timer-event-end,"V8.External",96461 +timer-event-start,"V8.External",96513 +timer-event-end,"V8.External",96520 +timer-event-end,"V8.GCScavenger",96524 +tick,0x2b85960c,97208,0,0xfee0,0,0x2b852252,0x2b848c4b,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b83b5b3,98279,0,0x2b851c24,0,0x2b85cd19,0x2b839f04,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",99128 +timer-event-start,"V8.External",99139 +timer-event-end,"V8.External",99143 +timer-event-start,"V8.External",99189 +timer-event-end,"V8.External",99195 +timer-event-end,"V8.GCScavenger",99199 +tick,0x821c54b,99345,0,0x5270e530,0,0x2b83bd35,0x2b85ccab,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b85a010,100416,0,0x0,0,0x2b852252,0x2b865810,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x808b5f1,101472,0,0x2f308081,0,0x2b8537a0,0x2b84a325,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",101820 +timer-event-start,"V8.External",101831 +timer-event-end,"V8.External",101835 +timer-event-start,"V8.External",101885 +timer-event-end,"V8.External",101891 +timer-event-end,"V8.GCScavenger",101895 +tick,0x2b85a376,102533,0,0x9c155cd6,0,0x2b852252,0x2b865810,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b863678,103607,0,0x4c0,0,0x2b83a0df,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",104515 +timer-event-start,"V8.External",104529 +timer-event-end,"V8.External",104533 +timer-event-start,"V8.External",104581 +timer-event-end,"V8.External",104588 +timer-event-end,"V8.GCScavenger",104592 +tick,0x2b85a2dc,104658,0,0x29,0,0x2b852252,0x2b8658f7,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b859e24,105742,0,0x80c5e06,0,0x2b852252,0x2b8654d2,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-deopt,106093,4416 +code-creation,Stub,12,0x2b8669c0,190,"BinaryOpStub_MOD_Alloc_Smi+Smi" +tick,0x2b8514f9,106811,0,0xd1b6f5df,0,0x2b8657f1,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",107254 +timer-event-start,"V8.External",107264 +timer-event-end,"V8.External",107268 +timer-event-start,"V8.External",107317 +timer-event-end,"V8.External",107323 +timer-event-end,"V8.GCScavenger",107327 +timer-event-start,"V8.RecompileSynchronous",107462 +timer-event-start,"V8.ParseLazy",107471 +timer-event-end,"V8.ParseLazy",107537 +timer-event-end,"V8.RecompileSynchronous",107729 +timer-event-start,"V8.RecompileConcurrent",107764 +tick,0x2b859da9,107874,0,0x2,0,0x2b852252,0x2b848b65,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-end,"V8.RecompileConcurrent",108795 +timer-event-start,"V8.RecompileSynchronous",108885 +tick,0x2b859d60,108935,0,0x0,0,0x2b852252,0x2b8658f7,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,Stub,2,0x2b866a80,783,"RecordWriteStub" +code-creation,Stub,2,0x2b866da0,1772,"RecordWriteStub" +code-creation,LazyCompile,1,0x2b8674a0,4040,"sjcl.cipher.aes bsuite/kraken-once/stanford-crypto-ccm.js:4",0x2f339830,* +timer-event-end,"V8.RecompileSynchronous",109204 +tick,0x2b851bd9,110005,0,0x68,0,0x2b85cd19,0x2b839f04,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",110651 +timer-event-start,"V8.External",110662 +timer-event-end,"V8.External",110666 +timer-event-start,"V8.External",110715 +timer-event-end,"V8.External",110721 +timer-event-end,"V8.GCScavenger",110725 +tick,0x2b85a1d8,111072,0,0x0,0,0x2b852252,0x2b8658f7,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b848d38,112161,0,0x4c,0,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileSynchronous",112323 +timer-event-start,"V8.ParseLazy",112335 +timer-event-end,"V8.ParseLazy",112387 +timer-event-start,"V8.ParseLazy",112444 +timer-event-end,"V8.ParseLazy",112463 +timer-event-start,"V8.ParseLazy",112496 +timer-event-end,"V8.ParseLazy",112509 +timer-event-start,"V8.ParseLazy",112536 +timer-event-end,"V8.ParseLazy",112552 +timer-event-start,"V8.ParseLazy",112576 +timer-event-end,"V8.ParseLazy",112598 +timer-event-start,"V8.ParseLazy",112639 +timer-event-end,"V8.ParseLazy",112653 +timer-event-start,"V8.ParseLazy",112685 +timer-event-end,"V8.ParseLazy",112722 +timer-event-start,"V8.ParseLazy",112803 +timer-event-end,"V8.ParseLazy",112819 +timer-event-start,"V8.ParseLazy",112848 +timer-event-end,"V8.ParseLazy",112863 +timer-event-end,"V8.RecompileSynchronous",112986 +timer-event-start,"V8.RecompileConcurrent",113012 +tick,0x2b867dc3,113148,0,0x100,0,0x2b839e65,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",114171 +timer-event-start,"V8.External",114182 +timer-event-end,"V8.External",114186 +tick,0x82c920e,114254,0,0x0,1 +timer-event-start,"V8.External",114309 +timer-event-end,"V8.External",114330 +timer-event-end,"V8.GCScavenger",114350 +timer-event-end,"V8.RecompileConcurrent",115013 +timer-event-start,"V8.RecompileSynchronous",115032 +tick,0x8369515,115325,0,0x9135ff0,2,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LazyCompile,1,0x5120a000,9284,"sjcl.mode.ccm.I bsuite/kraken-once/stanford-crypto-ccm.js:21",0x2f33a370,* +timer-event-end,"V8.RecompileSynchronous",115434 +code-deopt,115666,9312 +tick,0x2b85056f,116392,0,0x52f8f619,0,0x2b85cd2d,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b812420,117465,0,0x2b85592e,0,0x2b86573b,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",117571 +timer-event-start,"V8.External",117583 +timer-event-end,"V8.External",117587 +timer-event-start,"V8.External",117636 +timer-event-end,"V8.External",117642 +timer-event-end,"V8.GCScavenger",117646 +tick,0x811db13,118481,0,0x90d5060,0,0x2b85cd53,0x2b839eb3,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x80c4222,119548,0,0x90d5060,0,0x2b85599a,0x2b86573b,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",120368 +timer-event-start,"V8.External",120379 +timer-event-end,"V8.External",120383 +timer-event-start,"V8.External",120428 +timer-event-end,"V8.External",120434 +timer-event-end,"V8.GCScavenger",120438 +tick,0x2b867eb3,120610,0,0x100,0,0x2b839e65,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b859eae,121680,0,0x80c5e06,0,0x2b852252,0x2b8658f7,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b85981d,122808,0,0x21,0,0x2b852252,0x2b848c4b,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",123188 +timer-event-start,"V8.External",123199 +timer-event-end,"V8.External",123203 +timer-event-start,"V8.External",123248 +timer-event-end,"V8.External",123254 +timer-event-end,"V8.GCScavenger",123258 +tick,0x2b859ca8,123878,0,0x0,0,0x2b852252,0x2b865810,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x80fa2d1,124943,0,0x5279ab29,0,0x2b83bd35,0x2b85ccab,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",126000 +timer-event-start,"V8.External",126017 +timer-event-end,"V8.External",126022 +tick,0x808b6b0,126038,0,0x2f308081,0,0x2b855838,0x2b848b0a,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.External",126109 +timer-event-end,"V8.External",126129 +timer-event-end,"V8.GCScavenger",126139 +tick,0x808b656,127081,0,0x2f308081,0,0x2b8658be,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b85a1f0,128141,0,0x1f,0,0x2b852252,0x2b848c4b,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",128896 +timer-event-start,"V8.External",128907 +timer-event-end,"V8.External",128911 +timer-event-start,"V8.External",128958 +timer-event-end,"V8.External",128964 +timer-event-end,"V8.GCScavenger",128968 +tick,0x2b867d2b,129212,0,0x100,0,0x2b839e65,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b859a7b,130285,0,0x80c5e06,0,0x2b852252,0x2b865810,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b859c3b,131350,0,0x0,0,0x2b852252,0x2b8658f7,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",131713 +timer-event-start,"V8.External",131723 +timer-event-end,"V8.External",131727 +timer-event-start,"V8.External",131772 +timer-event-end,"V8.External",131778 +timer-event-end,"V8.GCScavenger",131782 +tick,0x80c413f,132412,0,0x90d5060,0,0x2b855ca8,0x2b8446a3,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x80a1baf,133466,0,0x811e5c0,0,0x2b848b2e,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",134532 +tick,0x2b85d126,134550,0,0x2,0,0x2b839f04,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.External",134619 +timer-event-end,"V8.External",134636 +timer-event-start,"V8.External",134702 +timer-event-end,"V8.External",134708 +timer-event-end,"V8.GCScavenger",134712 +tick,0x2b8594d3,135617,0,0x80c5e06,0,0x2b852252,0x2b8654d2,0x2b844628,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.RecompileSynchronous",135776 +timer-event-start,"V8.ParseLazy",135787 +timer-event-end,"V8.ParseLazy",135838 +timer-event-start,"V8.ParseLazy",135894 +timer-event-end,"V8.ParseLazy",135913 +timer-event-start,"V8.ParseLazy",135946 +timer-event-end,"V8.ParseLazy",135960 +timer-event-start,"V8.ParseLazy",135987 +timer-event-end,"V8.ParseLazy",136002 +timer-event-start,"V8.ParseLazy",136026 +timer-event-end,"V8.ParseLazy",136048 +timer-event-start,"V8.ParseLazy",136089 +timer-event-end,"V8.ParseLazy",136103 +timer-event-start,"V8.ParseLazy",136135 +timer-event-end,"V8.ParseLazy",136172 +timer-event-start,"V8.ParseLazy",136253 +timer-event-end,"V8.ParseLazy",136270 +timer-event-start,"V8.ParseLazy",136301 +timer-event-end,"V8.ParseLazy",136317 +timer-event-end,"V8.RecompileSynchronous",136440 +timer-event-start,"V8.RecompileConcurrent",136466 +tick,0x2b859c6e,136680,0,0x0,0,0x2b852252,0x2b8658f7,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-creation,LoadPolymorphicIC,5,0x5120c460,105,"length" +code-creation,LoadPolymorphicIC,5,0x5120c4e0,117,"length" +code-creation,LoadPolymorphicIC,5,0x5120c560,117,"length" +code-creation,LoadPolymorphicIC,5,0x5120c5e0,105,"length" +code-creation,LoadPolymorphicIC,5,0x5120c660,105,"length" +tick,0x2b855ece,137742,0,0x527d0961,0,0x2b8446a3,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",138203 +timer-event-start,"V8.External",138213 +timer-event-end,"V8.External",138217 +timer-event-start,"V8.External",138271 +timer-event-end,"V8.External",138277 +timer-event-end,"V8.GCScavenger",138281 +timer-event-end,"V8.RecompileConcurrent",138393 +timer-event-start,"V8.RecompileSynchronous",138412 +code-creation,LazyCompile,1,0x5120c6e0,9284,"sjcl.mode.ccm.I bsuite/kraken-once/stanford-crypto-ccm.js:21",0x2f33a370,* +timer-event-end,"V8.RecompileSynchronous",138781 +tick,0x83647f0,138812,0,0xf633ddf4,2,0x2b844670,0x2b83a0cc,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +code-deopt,138895,9312 +tick,0x2b851212,139867,0,0xff81fd00,0,0x2b8657f1,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x82ebff7,140937,0,0x2f33ca81,0,0x2b85056f,0x2b85cd2d,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",141540 +timer-event-start,"V8.External",141551 +timer-event-end,"V8.External",141555 +timer-event-start,"V8.External",141605 +timer-event-end,"V8.External",141611 +timer-event-end,"V8.GCScavenger",141615 +tick,0x2b85a0a6,142005,0,0x0,0,0x2b852252,0x2b865810,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x8116886,143088,0,0x90d5060,0,0x2b85b862,0x2b848b8c,0x2b84a58b,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b83dbaf,144137,0,0x2b85cd53,0,0x2b839fd2,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.GCScavenger",144365 +timer-event-start,"V8.External",144376 +timer-event-end,"V8.External",144380 +timer-event-start,"V8.External",144428 +timer-event-end,"V8.External",144434 +timer-event-end,"V8.GCScavenger",144438 +tick,0x81168ba,145212,0,0x90d5060,0,0x2b85056f,0x2b85cd2d,0x2b839f04,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +tick,0x2b851430,146268,0,0xff81fd00,0,0x2b8657f1,0x2b84a5e0,0x2b83a281,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b85b238,0x2b83a474,0x2b838f3f,0x2b838c50,0x2b839b39,0x2b83970e,0x2b83964b,0x2b8394a8,0x2b839273,0x2b839036,0x2b838f3f,0x2b838c50,0x2b83892e,0x2b8383df,0x2b8350ac +timer-event-start,"V8.ParseLazy",146339 +timer-event-end,"V8.ParseLazy",146358 +timer-event-start,"V8.CompileLazy",146364 +timer-event-start,"V8.CompileFullCode",146369 +timer-event-end,"V8.CompileFullCode",146386 +code-creation,LazyCompile,0,0x5120eb40,212," bsuite/kraken-once/stanford-crypto-ccm.js:172",0x2f33dd88,~ +timer-event-end,"V8.CompileLazy",146400 +code-creation,Stub,12,0x5120ec20,311,"BinaryOpStub_SUB_Alloc_Generic+Generic" +timer-event-start,"V8.ParseLazy",146431 +timer-event-end,"V8.ParseLazy",146461 +timer-event-start,"V8.CompileLazy",146467 +timer-event-start,"V8.CompileFullCode",146475 +timer-event-end,"V8.CompileFullCode",146495 +code-creation,LazyCompile,0,0x5120ed60,580,"NonNumberToNumber native runtime.js:548",0x44225f78,~ +timer-event-end,"V8.CompileLazy",146508 +code-creation,Stub,2,0x5120efc0,98,"valueOf" +code-creation,LoadPolymorphicIC,5,0x5120f040,117,"valueOf" +code-creation,CallIC,7,0x5120f0c0,129,"ToNumber" +timer-event-start,"V8.ParseLazy",146556 +timer-event-end,"V8.ParseLazy",146569 +timer-event-start,"V8.CompileLazy",146574 +timer-event-start,"V8.CompileFullCode",146580 +timer-event-end,"V8.CompileFullCode",146591 +code-creation,LazyCompile,0,0x5120f160,208,"record bsuite/kraken-once/stanford-crypto-ccm.js:7229",0x2f339680,~ +timer-event-end,"V8.CompileLazy",146603 +timer-event-start,"V8.External",146613 +timer-event-end,"V8.External",146656 +timer-event-end,"V8.Execute",146662 +timer-event-start,"V8.RecompileConcurrent",146700 +timer-event-end,"V8.RecompileConcurrent",146738 +profiler,"end" diff --git a/deps/v8/test/mjsunit/tools/tickprocessor-test-func-info.log b/deps/v8/test/mjsunit/tools/tickprocessor-test-func-info.log new file mode 100644 index 0000000000..94aa56d36c --- /dev/null +++ b/deps/v8/test/mjsunit/tools/tickprocessor-test-func-info.log @@ -0,0 +1,11 @@ +shared-library,"shell",0x08048000,0x081ee000 +shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000 +shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000 +profiler,"begin",1 +code-creation,Stub,0,0x424260,348,"CompareStub_GE" +code-creation,LazyCompile,0,0x2a8100,18535,"DrawQube 3d-cube.js:188",0xf43abcac, +code-creation,LazyCompile,0,0x480100,3908,"DrawLine 3d-cube.js:17",0xf43abc50, +tick,0x424284,0,0,0x480600,0,0x2aaaa5 +tick,0x42429f,0,0,0x480600,0,0x2aacb4 +tick,0x48063d,0,0,0x2d0f7c,0,0x2aaec6 +profiler,"end" diff --git a/deps/v8/test/mjsunit/tools/tickprocessor-test.log b/deps/v8/test/mjsunit/tools/tickprocessor-test.log new file mode 100644 index 0000000000..cf8b90d73b --- /dev/null +++ b/deps/v8/test/mjsunit/tools/tickprocessor-test.log @@ -0,0 +1,25 @@ +shared-library,"shell",0x08048000,0x081ee000 +shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000 +shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000 +profiler,"begin",1 +code-creation,Stub,0,0xf540a100,474,"CEntryStub" +code-creation,Script,0,0xf541cd80,736,"exp.js" +code-creation,Stub,0,0xf541d0e0,47,"RuntimeStub_Math_exp" +code-creation,LazyCompile,0,0xf541d120,145,"exp native math.js:41" +function-creation,0xf441d280,0xf541d120 +code-creation,LoadIC,0,0xf541d280,117,"j" +code-creation,LoadIC,0,0xf541d360,63,"i" +tick,0x80f82d1,0,0,0,0,0xf541ce5c +tick,0x80f89a1,0,0,0,0,0xf541ce5c +tick,0x8123b5c,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0x8123b65,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xf541d2be,0,0,0,0 +tick,0xf541d320,0,0,0,0 +tick,0xf541d384,0,0,0,0 +tick,0xf7db94da,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xf7db951c,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xf7dbc508,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xf7dbff21,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xf7edec90,0,0,0,0,0xf541d1a1,0xf541ceea +tick,0xffffe402,0,0,0,0 +profiler,"end" diff --git a/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt b/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt index 4b8eb14775..2ac5a39c9e 100644 --- a/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt +++ b/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt @@ -68,7 +68,7 @@ PASS getSortedOwnPropertyNames(Object.prototype) is ['__defineGetter__', '__defi PASS getSortedOwnPropertyNames(Function) is ['arguments', 'caller', 'length', 'name', 'prototype'] PASS getSortedOwnPropertyNames(Function.prototype) is ['apply', 'arguments', 'bind', 'call', 'caller', 'constructor', 'length', 'name', 'toString'] PASS getSortedOwnPropertyNames(Array) is ['arguments', 'caller', 'isArray', 'length', 'name', 'observe', 'prototype', 'unobserve'] -PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values'] +PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift'] PASS getSortedOwnPropertyNames(String) is ['arguments', 'caller', 'fromCharCode', 'length', 'name', 'prototype'] PASS getSortedOwnPropertyNames(String.prototype) is ['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'normalize', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf'] PASS getSortedOwnPropertyNames(Boolean) is ['arguments', 'caller', 'length', 'name', 'prototype'] diff --git a/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames.js b/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames.js index c168c37b0e..caa0111fe1 100644 --- a/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames.js +++ b/deps/v8/test/webkit/fast/js/Object-getOwnPropertyNames.js @@ -76,7 +76,7 @@ var expectedPropertyNamesSet = { "Function": "['arguments', 'caller', 'length', 'name', 'prototype']", "Function.prototype": "['apply', 'arguments', 'bind', 'call', 'caller', 'constructor', 'length', 'name', 'toString']", "Array": "['arguments', 'caller', 'isArray', 'length', 'name', 'observe', 'prototype', 'unobserve']", - "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values']", + "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift']", "String": "['arguments', 'caller', 'fromCharCode', 'length', 'name', 'prototype']", "String.prototype": "['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'normalize', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf']", "Boolean": "['arguments', 'caller', 'length', 'name', 'prototype']", diff --git a/deps/v8/test/webkit/webkit.status b/deps/v8/test/webkit/webkit.status index c14d5c13c4..7b6d3a34c4 100644 --- a/deps/v8/test/webkit/webkit.status +++ b/deps/v8/test/webkit/webkit.status @@ -50,6 +50,9 @@ ['simulator', { 'function-apply-aliased': [SKIP], }], # 'simulator' +['arch == arm and simulator_run == True', { + 'dfg-int-overflow-in-loop': [SKIP], +}], # 'arch == arm and simulator_run == True' ['arch == arm64 and simulator_run == True', { 'dfg-int-overflow-in-loop': [SKIP], }], # 'arch == arm64 and simulator_run == True' diff --git a/deps/v8/testing/gtest-type-names.h b/deps/v8/testing/gtest-type-names.h deleted file mode 100644 index ba900ddb88..0000000000 --- a/deps/v8/testing/gtest-type-names.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef V8_TESTING_GTEST_TYPE_NAMES_H_ -#define V8_TESTING_GTEST_TYPE_NAMES_H_ - -#include "include/v8stdint.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace testing { -namespace internal { - -#define GET_TYPE_NAME(type) \ - template <> \ - std::string GetTypeName<type>() { \ - return #type; \ - } -GET_TYPE_NAME(int8_t) -GET_TYPE_NAME(uint8_t) -GET_TYPE_NAME(int16_t) -GET_TYPE_NAME(uint16_t) -GET_TYPE_NAME(int32_t) -GET_TYPE_NAME(uint32_t) -GET_TYPE_NAME(int64_t) -GET_TYPE_NAME(uint64_t) -GET_TYPE_NAME(float) -GET_TYPE_NAME(double) -#undef GET_TYPE_NAME - -} // namespace internal -} // namespace testing - -#endif // V8_TESTING_GTEST_TYPE_NAMES_H_ diff --git a/deps/v8/testing/gtest.gyp b/deps/v8/testing/gtest.gyp index 5d068d0257..badfaa5d27 100644 --- a/deps/v8/testing/gtest.gyp +++ b/deps/v8/testing/gtest.gyp @@ -37,7 +37,6 @@ 'gtest/src/gtest-test-part.cc', 'gtest/src/gtest-typed-test.cc', 'gtest/src/gtest.cc', - 'gtest-type-names.h', ], 'sources!': [ 'gtest/src/gtest-all.cc', # Not needed by our build. diff --git a/deps/v8/third_party/fdlibm/fdlibm.cc b/deps/v8/third_party/fdlibm/fdlibm.cc index 2f6eab17e8..fe7e231608 100644 --- a/deps/v8/third_party/fdlibm/fdlibm.cc +++ b/deps/v8/third_party/fdlibm/fdlibm.cc @@ -26,7 +26,7 @@ namespace fdlibm { inline double scalbn(double x, int y) { return _scalb(x, y); } #endif // _MSC_VER -const double MathConstants::constants[] = { +const double TrigonometricConstants::constants[] = { 6.36619772367581382433e-01, // invpio2 0 1.57079632673412561417e+00, // pio2_1 1 6.07710050650619224932e-11, // pio2_1t 2 @@ -61,17 +61,6 @@ const double MathConstants::constants[] = { 2.59073051863633712884e-05, // T12 31 7.85398163397448278999e-01, // pio4 32 3.06161699786838301793e-17, // pio4lo 33 - 6.93147180369123816490e-01, // ln2_hi 34 - 1.90821492927058770002e-10, // ln2_lo 35 - 1.80143985094819840000e+16, // 2^54 36 - 6.666666666666666666e-01, // 2/3 37 - 6.666666666666735130e-01, // LP1 38 - 3.999999999940941908e-01, // 39 - 2.857142874366239149e-01, // 40 - 2.222219843214978396e-01, // 41 - 1.818357216161805012e-01, // 42 - 1.531383769920937332e-01, // 43 - 1.479819860511658591e-01, // LP7 44 }; diff --git a/deps/v8/third_party/fdlibm/fdlibm.h b/deps/v8/third_party/fdlibm/fdlibm.h index 7985c3a323..39c4b50dba 100644 --- a/deps/v8/third_party/fdlibm/fdlibm.h +++ b/deps/v8/third_party/fdlibm/fdlibm.h @@ -22,8 +22,8 @@ namespace fdlibm { int rempio2(double x, double* y); // Constants to be exposed to builtins via Float64Array. -struct MathConstants { - static const double constants[45]; +struct TrigonometricConstants { + static const double constants[34]; }; } } // namespace v8::internal diff --git a/deps/v8/third_party/fdlibm/fdlibm.js b/deps/v8/third_party/fdlibm/fdlibm.js index a55b7c70c8..d5dbb72990 100644 --- a/deps/v8/third_party/fdlibm/fdlibm.js +++ b/deps/v8/third_party/fdlibm/fdlibm.js @@ -13,21 +13,21 @@ // modified significantly by Google Inc. // Copyright 2014 the V8 project authors. All rights reserved. // -// The following is a straightforward translation of fdlibm routines -// by Raymond Toy (rtoy@google.com). +// The following is a straightforward translation of fdlibm routines for +// sin, cos, and tan, by Raymond Toy (rtoy@google.com). -var kMath; // Initialized to a Float64Array during genesis and is not writable. +var kTrig; // Initialized to a Float64Array during genesis and is not writable. -const INVPIO2 = kMath[0]; -const PIO2_1 = kMath[1]; -const PIO2_1T = kMath[2]; -const PIO2_2 = kMath[3]; -const PIO2_2T = kMath[4]; -const PIO2_3 = kMath[5]; -const PIO2_3T = kMath[6]; -const PIO4 = kMath[32]; -const PIO4LO = kMath[33]; +const INVPIO2 = kTrig[0]; +const PIO2_1 = kTrig[1]; +const PIO2_1T = kTrig[2]; +const PIO2_2 = kTrig[3]; +const PIO2_2T = kTrig[4]; +const PIO2_3 = kTrig[5]; +const PIO2_3T = kTrig[6]; +const PIO4 = kTrig[32]; +const PIO4LO = kTrig[33]; // Compute k and r such that x - k*pi/2 = r where |r| < pi/4. For // precision, r is returned as two values y0 and y1 such that r = y0 + y1 @@ -133,7 +133,7 @@ endmacro // sin(x) = X + (S1*X + (X *(r-Y/2)+Y)) // macro KSIN(x) -kMath[7+x] +kTrig[7+x] endmacro macro RETURN_KERNELSIN(X, Y, SIGN) @@ -177,7 +177,7 @@ endmacro // thus, reducing the rounding error in the subtraction. // macro KCOS(x) -kMath[13+x] +kTrig[13+x] endmacro macro RETURN_KERNELCOS(X, Y, SIGN) @@ -199,7 +199,6 @@ macro RETURN_KERNELCOS(X, Y, SIGN) } endmacro - // kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 // Input x is assumed to be bounded by ~pi/4 in magnitude. // Input y is the tail of x. @@ -236,7 +235,7 @@ endmacro // and will cause incorrect results. // macro KTAN(x) -kMath[19+x] +kTrig[19+x] endmacro function KernelTan(x, y, returnTan) { @@ -355,164 +354,3 @@ function MathTan(x) { REMPIO2(x); return KernelTan(y0, y1, (n & 1) ? -1 : 1); } - -// ES6 draft 09-27-13, section 20.2.2.20. -// Math.log1p -// -// Method : -// 1. Argument Reduction: find k and f such that -// 1+x = 2^k * (1+f), -// where sqrt(2)/2 < 1+f < sqrt(2) . -// -// Note. If k=0, then f=x is exact. However, if k!=0, then f -// may not be representable exactly. In that case, a correction -// term is need. Let u=1+x rounded. Let c = (1+x)-u, then -// log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), -// and add back the correction term c/u. -// (Note: when x > 2**53, one can simply return log(x)) -// -// 2. Approximation of log1p(f). -// Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) -// = 2s + 2/3 s**3 + 2/5 s**5 + ....., -// = 2s + s*R -// We use a special Reme algorithm on [0,0.1716] to generate -// a polynomial of degree 14 to approximate R The maximum error -// of this polynomial approximation is bounded by 2**-58.45. In -// other words, -// 2 4 6 8 10 12 14 -// R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s -// (the values of Lp1 to Lp7 are listed in the program) -// and -// | 2 14 | -58.45 -// | Lp1*s +...+Lp7*s - R(z) | <= 2 -// | | -// Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. -// In order to guarantee error in log below 1ulp, we compute log -// by -// log1p(f) = f - (hfsq - s*(hfsq+R)). -// -// 3. Finally, log1p(x) = k*ln2 + log1p(f). -// = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) -// Here ln2 is split into two floating point number: -// ln2_hi + ln2_lo, -// where n*ln2_hi is always exact for |n| < 2000. -// -// Special cases: -// log1p(x) is NaN with signal if x < -1 (including -INF) ; -// log1p(+INF) is +INF; log1p(-1) is -INF with signal; -// log1p(NaN) is that NaN with no signal. -// -// Accuracy: -// according to an error analysis, the error is always less than -// 1 ulp (unit in the last place). -// -// Constants: -// The hexadecimal values are the intended ones for the following -// constants. The decimal values may be used, provided that the -// compiler will convert from decimal to binary accurately enough -// to produce the hexadecimal values shown. -// -// Note: Assuming log() return accurate answer, the following -// algorithm can be used to compute log1p(x) to within a few ULP: -// -// u = 1+x; -// if (u==1.0) return x ; else -// return log(u)*(x/(u-1.0)); -// -// See HP-15C Advanced Functions Handbook, p.193. -// -const LN2_HI = kMath[34]; -const LN2_LO = kMath[35]; -const TWO54 = kMath[36]; -const TWO_THIRD = kMath[37]; -macro KLOGP1(x) -(kMath[38+x]) -endmacro - -function MathLog1p(x) { - x = x * 1; // Convert to number. - var hx = %_DoubleHi(x); - var ax = hx & 0x7fffffff; - var k = 1; - var f = x; - var hu = 1; - var c = 0; - var u = x; - - if (hx < 0x3fda827a) { - // x < 0.41422 - if (ax >= 0x3ff00000) { // |x| >= 1 - if (x === -1) { - return -INFINITY; // log1p(-1) = -inf - } else { - return NAN; // log1p(x<-1) = NaN - } - } else if (ax < 0x3c900000) { - // For |x| < 2^-54 we can return x. - return x; - } else if (ax < 0x3e200000) { - // For |x| < 2^-29 we can use a simple two-term Taylor series. - return x - x * x * 0.5; - } - - if ((hx > 0) || (hx <= -0x402D413D)) { // (int) 0xbfd2bec3 = -0x402d413d - // -.2929 < x < 0.41422 - k = 0; - } - } - - // Handle Infinity and NAN - if (hx >= 0x7ff00000) return x; - - if (k !== 0) { - if (hx < 0x43400000) { - // x < 2^53 - u = 1 + x; - hu = %_DoubleHi(u); - k = (hu >> 20) - 1023; - c = (k > 0) ? 1 - (u - x) : x - (u - 1); - c = c / u; - } else { - hu = %_DoubleHi(u); - k = (hu >> 20) - 1023; - } - hu = hu & 0xfffff; - if (hu < 0x6a09e) { - u = %_ConstructDouble(hu | 0x3ff00000, %_DoubleLo(u)); // Normalize u. - } else { - ++k; - u = %_ConstructDouble(hu | 0x3fe00000, %_DoubleLo(u)); // Normalize u/2. - hu = (0x00100000 - hu) >> 2; - } - f = u - 1; - } - - var hfsq = 0.5 * f * f; - if (hu === 0) { - // |f| < 2^-20; - if (f === 0) { - if (k === 0) { - return 0.0; - } else { - return k * LN2_HI + (c + k * LN2_LO); - } - } - var R = hfsq * (1 - TWO_THIRD * f); - if (k === 0) { - return f - R; - } else { - return k * LN2_HI - ((R - (k * LN2_LO + c)) - f); - } - } - - var s = f / (2 + f); - var z = s * s; - var R = z * (KLOGP1(0) + z * (KLOGP1(1) + z * - (KLOGP1(2) + z * (KLOGP1(3) + z * - (KLOGP1(4) + z * (KLOGP1(5) + z * KLOGP1(6))))))); - if (k === 0) { - return f - (hfsq - s * (hfsq + R)); - } else { - return k * LN2_HI - ((hfsq - (s * (hfsq + R) + (k * LN2_LO + c))) - f); - } -} diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py index 108fde06e0..1c93159c06 100644 --- a/deps/v8/tools/gen-postmortem-metadata.py +++ b/deps/v8/tools/gen-postmortem-metadata.py @@ -70,6 +70,8 @@ consts_misc = [ { 'name': 'ExternalStringTag', 'value': 'kExternalStringTag' }, { 'name': 'SlicedStringTag', 'value': 'kSlicedStringTag' }, + { 'name': 'FailureTag', 'value': 'kFailureTag' }, + { 'name': 'FailureTagMask', 'value': 'kFailureTagMask' }, { 'name': 'HeapObjectTag', 'value': 'kHeapObjectTag' }, { 'name': 'HeapObjectTagMask', 'value': 'kHeapObjectTagMask' }, { 'name': 'SmiTag', 'value': 'kSmiTag' }, @@ -92,6 +94,8 @@ consts_misc = [ 'value': 'DescriptorArray::kFirstIndex' }, { 'name': 'prop_type_field', 'value': 'FIELD' }, + { 'name': 'prop_type_first_phantom', + 'value': 'TRANSITION' }, { 'name': 'prop_type_mask', 'value': 'PropertyDetails::TypeField::kMask' }, { 'name': 'prop_index_mask', @@ -116,15 +120,11 @@ consts_misc = [ 'value': 'DICTIONARY_ELEMENTS' }, { 'name': 'bit_field2_elements_kind_mask', - 'value': 'Map::ElementsKindBits::kMask' }, + 'value': 'Map::kElementsKindMask' }, { 'name': 'bit_field2_elements_kind_shift', - 'value': 'Map::ElementsKindBits::kShift' }, + 'value': 'Map::kElementsKindShift' }, { 'name': 'bit_field3_dictionary_map_shift', 'value': 'Map::DictionaryMap::kShift' }, - { 'name': 'fieldindex_mask', - 'value': 'PropertyDetails::FieldIndexField::kMask' }, - { 'name': 'fieldindex_shift', - 'value': 'PropertyDetails::FieldIndexField::kShift' }, { 'name': 'off_fp_context', 'value': 'StandardFrameConstants::kContextOffset' }, @@ -150,7 +150,7 @@ extras_accessors = [ 'Map, instance_size, int, kInstanceSizeOffset', 'Map, bit_field, char, kBitFieldOffset', 'Map, bit_field2, char, kBitField2Offset', - 'Map, bit_field3, int, kBitField3Offset', + 'Map, bit_field3, SMI, kBitField3Offset', 'Map, prototype, Object, kPrototypeOffset', 'NameDictionaryShape, prefix_size, int, kPrefixSize', 'NameDictionaryShape, entry_size, int, kEntrySize', @@ -196,9 +196,9 @@ header = ''' * This file is generated by %s. Do not edit directly. */ -#include "src/v8.h" -#include "src/frames.h" -#include "src/frames-inl.h" /* for architecture-specific frame constants */ +#include "v8.h" +#include "frames.h" +#include "frames-inl.h" /* for architecture-specific frame constants */ using namespace v8::internal; diff --git a/deps/v8/tools/generate-runtime-tests.py b/deps/v8/tools/generate-runtime-tests.py index b5f61a8422..a41df6786a 100755 --- a/deps/v8/tools/generate-runtime-tests.py +++ b/deps/v8/tools/generate-runtime-tests.py @@ -47,11 +47,11 @@ EXPAND_MACROS = [ # that the parser doesn't bit-rot. Change the values as needed when you add, # remove or change runtime functions, but make sure we don't lose our ability # to parse them! -EXPECTED_FUNCTION_COUNT = 429 -EXPECTED_FUZZABLE_COUNT = 332 +EXPECTED_FUNCTION_COUNT = 428 +EXPECTED_FUZZABLE_COUNT = 331 EXPECTED_CCTEST_COUNT = 7 EXPECTED_UNKNOWN_COUNT = 16 -EXPECTED_BUILTINS_COUNT = 808 +EXPECTED_BUILTINS_COUNT = 809 # Don't call these at all. @@ -226,7 +226,6 @@ CUSTOM_KNOWN_GOOD_INPUT = { "CreateBreakIterator": ["'en-US'", "{type: 'string'}", None, None], "CreateJSFunctionProxy": [None, "function() {}", None, None, None], "CreatePrivateSymbol": ["\"foo\"", None], - "CreatePrivateOwnSymbol": ["\"foo\"", None], "CreateSymbol": ["\"foo\"", None], "DateParseString": [None, "new Array(8)", None], "DefineAccessorPropertyUnchecked": [None, None, "function() {}", diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp index c7eb87514d..c703155bc9 100644 --- a/deps/v8/tools/gyp/v8.gyp +++ b/deps/v8/tools/gyp/v8.gyp @@ -344,8 +344,6 @@ '../../src/compilation-cache.h', '../../src/compiler/ast-graph-builder.cc', '../../src/compiler/ast-graph-builder.h', - '../../src/compiler/change-lowering.cc', - '../../src/compiler/change-lowering.h', '../../src/compiler/code-generator-impl.h', '../../src/compiler/code-generator.cc', '../../src/compiler/code-generator.h', @@ -1250,7 +1248,7 @@ ['OS=="solaris"', { 'link_settings': { 'libraries': [ - '-lnsl -lrt', + '-lnsl', ]}, 'sources': [ '../../src/base/platform/platform-solaris.cc', diff --git a/deps/v8/tools/run-tests.py b/deps/v8/tools/run-tests.py index 6e9f5549d8..0592024308 100755 --- a/deps/v8/tools/run-tests.py +++ b/deps/v8/tools/run-tests.py @@ -28,6 +28,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +from collections import OrderedDict import itertools import multiprocessing import optparse @@ -52,6 +53,31 @@ from testrunner.objects import context ARCH_GUESS = utils.DefaultArch() DEFAULT_TESTS = ["mjsunit", "fuzz-natives", "base-unittests", "cctest", "compiler-unittests", "message", "preparser"] + +# Map of test name synonyms to lists of test suites. Should be ordered by +# expected runtimes (suites with slow test cases first). These groups are +# invoked in seperate steps on the bots. +TEST_MAP = { + "default": [ + "mjsunit", + "fuzz-natives", + "cctest", + "message", + "preparser", + ], + "optimize_for_size": [ + "mjsunit", + "cctest", + "webkit", + ], + "unittests": [ + "compiler-unittests", + "heap-unittests", + "base-unittests", + "libplatform-unittests", + ], +} + TIMEOUT_DEFAULT = 60 TIMEOUT_SCALEFACTOR = {"debug" : 4, "release" : 1 } @@ -377,14 +403,23 @@ def Main(): suite_paths = utils.GetSuitePaths(join(workspace, "test")) + # Expand arguments with grouped tests. The args should reflect the list of + # suites as otherwise filters would break. + def ExpandTestGroups(name): + if name in TEST_MAP: + return [suite for suite in TEST_MAP[arg]] + else: + return [name] + args = reduce(lambda x, y: x + y, + [ExpandTestGroups(arg) for arg in args], + []) + if len(args) == 0: suite_paths = [ s for s in DEFAULT_TESTS if s in suite_paths ] else: - args_suites = set() + args_suites = OrderedDict() # Used as set for arg in args: - suite = arg.split(os.path.sep)[0] - if not suite in args_suites: - args_suites.add(suite) + args_suites[arg.split(os.path.sep)[0]] = True suite_paths = [ s for s in args_suites if s in suite_paths ] suites = [] diff --git a/deps/v8/tools/v8.xcodeproj/README.txt b/deps/v8/tools/v8.xcodeproj/README.txt new file mode 100644 index 0000000000..e064ff6bf1 --- /dev/null +++ b/deps/v8/tools/v8.xcodeproj/README.txt @@ -0,0 +1,11 @@ +The Xcode project for V8 has been retired. If an Xcode project +is needed for building on a Mac there is the option of using GYP to +generate it. Please look in the build directory in the root of the +V8 project. It contains the required infrastructure and a README.txt +file explaining how to get started. + +Generating Xcode projects using GYP is how the Chromium +project integrated V8 into the Mac build. + +The main build system for V8 is still SCons, see +http://code.google.com/apis/v8/build.html for details. diff --git a/deps/v8/tools/whitespace.txt b/deps/v8/tools/whitespace.txt index 64a6f4c985..924419ee54 100644 --- a/deps/v8/tools/whitespace.txt +++ b/deps/v8/tools/whitespace.txt @@ -5,4 +5,4 @@ Try to write something funny. And please don't add trailing whitespace. A Smi walks into a bar and says: "I'm so deoptimized today!" The doubles heard this and started to unbox. -The Smi looked at them and...................... +The Smi looked at them and.................... |