moll / json-stringify-safe

Like JSON.stringify, but doesn't throw on circular references
ISC License
550 stars 51 forks source link

can cause unexpected behaviour in the presence of __defineGetter__ #24

Closed richmarr closed 7 years ago

richmarr commented 7 years ago

Thanks for sharing!

I came across an error while trying to calculate the hash of a sequelize query object. It includes model definitions, which contain a reference to the client, which contains a reference to pg which does lazy instantiation using __defineGetter__ on the pg-native library (that I don't need so don't have installed).

Open question what the correct behaviour should be here. You could argue that lazy require via a getter is an abberant special case that could be covered by a workaround, or you could take the view that stringification should be "as is" rather than running arbitrary code.

I think I'm in the former camp, as "normal" getter use would probably be expected behaviour, but wanted to post this here to document the error case.

Maybe a compromise might be to allow an optional getterReplacer that decides behaviour

moll commented 7 years ago

Hey,

I take the stance that getters, memoized or not, are perfectly valid object properties meant to be indistinguishable from precomputed properties. There's always code running during JSON serialization, be it through getters, new-found proxy objects or even plain toJSON. Especially because of the latter, I'd put all the onus on authors of given objects to ensure their getters are external side-effect free. While memoized getters depend on side-effects for caching, they're not meant to be observable outside of the object.

As for your Pg case, well, thanks for sharing the story. :-) I wouldn't bother adding more functionality to this lib though. If there's a need for behavior dependent on property or object types, I support you throwing a new module out there. :)

einnjo commented 7 years ago

I ran into this very same issue with the same libraries (sequelize, pg, pg-native). I support the idea that getters are valid properties for stringification.

In this case pg is trying to require('pg-native') whenever its native property is accessed. I would expect an error to be thrown and for the program to exit. However my program is stuck consuming cpu inside json-stringify-safe.

Could this be avoided?

Here's a profile report from node:

update: After digging in some more, the behaviour I described (crash and exit) seems to be the usual case. There must be something going on in the library (raven) we use for error reporting that causes the hangup.

Code move event for unknown code: 0x23d8bdce2840
Code move event for unknown code: 0x23d8bdce6780
Statistical profiling result from isolate-0x103801600-v8.log, (23733 ticks, 1378 unaccounted, 0 excluded).

 [Shared libraries]:
   ticks  total  nonlib   name
   1504    6.3%          /usr/lib/system/libsystem_platform.dylib
    226    1.0%          /usr/lib/system/libsystem_kernel.dylib
     32    0.1%          /usr/lib/system/libsystem_malloc.dylib
     29    0.1%          /usr/lib/system/libsystem_c.dylib
      5    0.0%          /usr/lib/system/libsystem_pthread.dylib
      2    0.0%          /usr/lib/libc++abi.dylib
      1    0.0%          /usr/lib/libc++.1.dylib

 [JavaScript]:
   ticks  total  nonlib   name
   2833   11.9%   12.9%  LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    261    1.1%    1.2%  LazyCompile: *DoJoin native array.js:97:16
    188    0.8%    0.9%  LazyCompile: *ConvertToString native array.js:135:25
    145    0.6%    0.7%  Stub: CEntryStub {1}
    135    0.6%    0.6%  Stub: JSEntryStub
    121    0.5%    0.6%  Builtin: JSEntryTrampoline
     95    0.4%    0.4%  Builtin: ArraySplice
     86    0.4%    0.4%  LazyCompile: *cycleReplacer /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:11:54
     68    0.3%    0.3%  Builtin: CallFunction_ReceiverIsAny
     39    0.2%    0.2%  Builtin: ToString
     32    0.1%    0.1%  LazyCompile: *Join native array.js:122:14
     31    0.1%    0.1%  Stub: InternalArraySingleArgumentConstructorStub
     18    0.1%    0.1%  Stub: StringAddStub
     17    0.1%    0.1%  LazyCompile: *join native array.js:289:19
     14    0.1%    0.1%  LazyCompile: *StackPush native array.js:82:19
     13    0.1%    0.1%  Builtin: Call_ReceiverIsAny
     12    0.1%    0.1%  Stub: RecordWriteStub {1}
     12    0.1%    0.1%  Stub: CEntryStub
     12    0.1%    0.1%  LazyCompile: *InnerArrayJoin native array.js:276:24
      9    0.0%    0.0%  Builtin: ConstructFunction
      9    0.0%    0.0%  Builtin: Construct
      8    0.0%    0.0%  Builtin: StringEqual
      7    0.0%    0.0%  LazyCompile: *StackPop native array.js:85:18
      7    0.0%    0.0%  Builtin: ToBoolean
      6    0.0%    0.0%  LazyCompile: *UseSparseVariant native array.js:64:26
      5    0.0%    0.0%  LazyCompile: *get native collection.js:240:16
      4    0.0%    0.0%  Stub: InternalArrayConstructorStub
      4    0.0%    0.0%  LazyCompile: *StackHas native array.js:88:18
      4    0.0%    0.0%  Builtin: ObjectHasOwnProperty
      4    0.0%    0.0%  Builtin: ArraySlice
      3    0.0%    0.0%  Stub: SubStringStub
      3    0.0%    0.0%  Stub: CreateWeakCellStub
      3    0.0%    0.0%  LazyCompile: ~realpathSync fs.js:1563:40
      3    0.0%    0.0%  LazyCompile: *normalizeStringPosix path.js:78:30
      2    0.0%    0.0%  Stub: RegExpExecStub
      2    0.0%    0.0%  Stub: CallConstructStub
      2    0.0%    0.0%  Stub: BinaryOpWithAllocationSiteStub
      2    0.0%    0.0%  RegExp: (.*?)(?:[/]+|$)
      2    0.0%    0.0%  LazyCompile: ~Module._compile module.js:511:37
      2    0.0%    0.0%  LazyCompile: *resolve path.js:1131:28
      2    0.0%    0.0%  KeyedLoadIC: A keyed load IC from the snapshot
      2    0.0%    0.0%  Builtin: CompileLazy
      2    0.0%    0.0%  Builtin: CallFunction_ReceiverIsNotNullOrUndefined
      1    0.0%    0.0%  Stub: ToBooleanICStub(Undefined,Bool,String)
      1    0.0%    0.0%  Stub: ToBooleanICStub(Null,SpecObject)
      1    0.0%    0.0%  Stub: ShiftRightLogicalStub
      1    0.0%    0.0%  Stub: RecordWriteStub {2}
      1    0.0%    0.0%  Stub: RecordWriteStub
      1    0.0%    0.0%  Stub: LoadConstantStub {1}
      1    0.0%    0.0%  Stub: LoadConstantStub
      1    0.0%    0.0%  Stub: GrowArrayElementsStub
      1    0.0%    0.0%  Stub: FastNewStrictArgumentsStub
      1    0.0%    0.0%  Stub: FastNewObjectStub
      1    0.0%    0.0%  Stub: FastNewFunctionContextStub
      1    0.0%    0.0%  Stub: FastCloneShallowObjectStub
      1    0.0%    0.0%  Stub: FastCloneShallowArrayStub
      1    0.0%    0.0%  Stub: FastArrayPushStub
      1    0.0%    0.0%  Stub: CompareICStub {1}
      1    0.0%    0.0%  Stub: CompareICStub
      1    0.0%    0.0%  RegExp: ss$
      1    0.0%    0.0%  RegExp: ((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$
      1    0.0%    0.0%  LazyCompile: ~slowToString buffer.js:434:22
      1    0.0%    0.0%  LazyCompile: ~lookup dns.js:102:16
      1    0.0%    0.0%  LazyCompile: ~lodash.(anonymous function) /Users/juanjo/dev/schoolhub/api/node_modules/sequelize/node_modules/lodash/lodash.js:16120:46
      1    0.0%    0.0%  LazyCompile: ~isPrototype /Users/juanjo/dev/schoolhub/api/node_modules/sequelize/node_modules/lodash/lodash.js:5763:25
      1    0.0%    0.0%  LazyCompile: ~initSocketHandle net.js:121:26
      1    0.0%    0.0%  LazyCompile: ~inherit /Users/juanjo/dev/schoolhub/api/node_modules/aws-sdk/lib/util.js:586:28
      1    0.0%    0.0%  LazyCompile: ~filterOutReservedFunctions /Users/juanjo/dev/schoolhub/api/node_modules/request/request.js:59:36
      1    0.0%    0.0%  LazyCompile: ~exports.inherits util.js:982:28
      1    0.0%    0.0%  LazyCompile: ~defineMethods /Users/juanjo/dev/schoolhub/api/node_modules/aws-sdk/lib/service.js:456:40
      1    0.0%    0.0%  LazyCompile: ~_apply_rules /Users/juanjo/dev/schoolhub/api/node_modules/inflection/lib/inflection.js:587:29
      1    0.0%    0.0%  LazyCompile: ~[Symbol.replace] native regexp.js:481:31
      1    0.0%    0.0%  LazyCompile: ~Uint8Array native typedarray.js:229:31
      1    0.0%    0.0%  LazyCompile: ~Request.onRequestResponse /Users/juanjo/dev/schoolhub/api/node_modules/request/request.js:887:48
      1    0.0%    0.0%  LazyCompile: ~Queue.shift /Users/juanjo/dev/schoolhub/api/node_modules/bluebird/js/release/queue.js:44:34
      1    0.0%    0.0%  LazyCompile: ~Module._resolveLookupPaths module.js:315:38
      1    0.0%    0.0%  LazyCompile: ~Module._findPath module.js:148:28
      1    0.0%    0.0%  LazyCompile: ~Model.refreshAttributes /Users/juanjo/dev/schoolhub/api/node_modules/sequelize/lib/model.js:741:45
      1    0.0%    0.0%  LazyCompile: ~DoJoin native array.js:97:16
      1    0.0%    0.0%  LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/sequelize/node_modules/lodash/lodash.js:4381:22
      1    0.0%    0.0%  LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/lodash/lodash.js:6704:22
      1    0.0%    0.0%  LazyCompile: *set native collection.js:253:16
      1    0.0%    0.0%  LazyCompile: *isPrototype /Users/juanjo/dev/schoolhub/api/node_modules/sequelize/node_modules/lodash/lodash.js:5763:25
      1    0.0%    0.0%  LazyCompile: *fs.fstatSync fs.js:953:24
      1    0.0%    0.0%  LazyCompile: *basename path.js:1352:30
      1    0.0%    0.0%  LazyCompile: *Script.runInThisContext vm.js:19:45
      1    0.0%    0.0%  LazyCompile: *Module._compile module.js:511:37
      1    0.0%    0.0%  LazyCompile: *Buffer.toString buffer.js:501:37
      1    0.0%    0.0%  KeyedLoadIC: A keyed load IC from the snapshot {1}
      1    0.0%    0.0%  Handler: _popContext
      1    0.0%    0.0%  Handler: An IC handler from the snapshot {1}
      1    0.0%    0.0%  Handler: An IC handler from the snapshot
      1    0.0%    0.0%  Function: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/aws-sdk/clients/codecommit.js:1:11
      1    0.0%    0.0%  Builtin: StringFromCharCode
      1    0.0%    0.0%  Builtin: RegExpPrototypeExec
      1    0.0%    0.0%  Builtin: FunctionPrototypeHasInstance
      1    0.0%    0.0%  Builtin: ArgumentsAdaptorTrampoline

 [C++]:
   ticks  total  nonlib   name
   1802    7.6%    8.2%  v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>)
   1576    6.6%    7.2%  v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>)
    794    3.3%    3.6%  v8::internal::Builtin_Impl_ArraySplice(v8::internal::BuiltinArguments, v8::internal::Isolate*)
    721    3.0%    3.3%  v8::internal::(anonymous namespace)::EnsureJSArrayWithWritableFastElements(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments*, int)
    675    2.8%    3.1%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::Splice(v8::internal::Handle<v8::internal::JSArray>, unsigned int, unsigned int, v8::internal::Arguments*, unsigned int)
    616    2.6%    2.8%  v8::internal::(anonymous namespace)::CopyObjectToObjectElements(v8::internal::FixedArrayBase*, v8::internal::ElementsKind, unsigned int, v8::internal::FixedArrayBase*, v8::internal::ElementsKind, unsigned int, int)
    615    2.6%    2.8%  void v8::internal::String::WriteToFlat<unsigned short>(v8::internal::String*, unsigned short*, int, int)
    475    2.0%    2.2%  v8::internal::PagedSpace::Available()
    470    2.0%    2.1%  v8::internal::(anonymous namespace)::FastElementsAccessor<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::CopyArguments(v8::internal::Arguments*, v8::internal::Handle<v8::internal::FixedArrayBase>, unsigned int, unsigned int, unsigned int)
    440    1.9%    2.0%  v8::internal::Factory::NewJSArrayStorage(v8::internal::Handle<v8::internal::JSArray>, int, int, v8::internal::ArrayStorageAllocationMode)
    411    1.7%    1.9%  v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
    411    1.7%    1.9%  v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>)
    382    1.6%    1.7%  v8::internal::Heap::AllocateRaw(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment)
    375    1.6%    1.7%  v8::internal::Factory::NewJSArray(v8::internal::ElementsKind, v8::internal::PretenureFlag)
    360    1.5%    1.6%  v8::internal::Heap::InitializeJSObjectFromMap(v8::internal::JSObject*, v8::internal::FixedArray*, v8::internal::Map*)
    299    1.3%    1.4%  node::ContextifyScript::New(v8::FunctionCallbackInfo<v8::Value> const&)
    284    1.2%    1.3%  v8::internal::LookupIterator::State v8::internal::LookupIterator::LookupInRegularHolder<false>(v8::internal::Map*, v8::internal::JSReceiver*)
    279    1.2%    1.3%  v8::internal::JsonStringifier::ApplyReplacerFunction(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)
    275    1.2%    1.3%  v8::internal::JsonStringifier::StackPush(v8::internal::Handle<v8::internal::Object>)
    247    1.0%    1.1%  v8::internal::Heap::Scavenge()
    221    0.9%    1.0%  v8::internal::Factory::NewJSObjectFromMap(v8::internal::Handle<v8::internal::Map>, v8::internal::PretenureFlag, v8::internal::Handle<v8::internal::AllocationSite>)
    204    0.9%    0.9%  v8::internal::Handle<v8::internal::Object> v8::internal::HandleScope::CloseAndEscape<v8::internal::Object>(v8::internal::Handle<v8::internal::Object>)
    194    0.8%    0.9%  v8::internal::SaveContext::SaveContext(v8::internal::Isolate*)
    174    0.7%    0.8%  v8::internal::JSObject::FastPropertyAt(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Representation, v8::internal::FieldIndex)
    162    0.7%    0.7%  int v8::internal::BinarySearch<(v8::internal::SearchMode)1, v8::internal::DescriptorArray>(v8::internal::DescriptorArray*, v8::internal::Name*, int, int*)
    159    0.7%    0.7%  v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*)
    142    0.6%    0.6%  void v8::internal::LookupIterator::NextInternal<false>(v8::internal::Map*, v8::internal::JSReceiver*)
    136    0.6%    0.6%  v8::internal::Heap::Allocate(v8::internal::Map*, v8::internal::AllocationSpace, v8::internal::AllocationSite*)
    135    0.6%    0.6%  v8::internal::Heap::AllocateRawFixedArray(int, v8::internal::PretenureFlag)
    119    0.5%    0.5%  v8::internal::Factory::NewUninitializedFixedArray(int)
    117    0.5%    0.5%  v8::internal::JsonStringifier::ApplyToJsonFunction(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)
    117    0.5%    0.5%  v8::internal::Heap::InitializeJSObjectBody(v8::internal::JSObject*, v8::internal::Map*, int)
    106    0.4%    0.5%  v8::internal::JsonStringifier::CurrentHolder(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)
    100    0.4%    0.5%  v8::internal::Factory::NewJSArray(v8::internal::ElementsKind, int, int, v8::internal::ArrayStorageAllocationMode, v8::internal::PretenureFlag)
     98    0.4%    0.4%  v8::internal::Heap::AllocateJSObjectFromMap(v8::internal::Map*, v8::internal::PretenureFlag, v8::internal::AllocationSite*)
     93    0.4%    0.4%  v8::internal::IncrementalMarking::Step(unsigned long, v8::internal::IncrementalMarking::CompletionAction, v8::internal::IncrementalMarking::ForceCompletionAction, v8::internal::StepOrigin)
     78    0.3%    0.4%  v8::internal::JSObject::EnsureWritableFastElements(v8::internal::Handle<v8::internal::JSObject>)
     78    0.3%    0.4%  v8::internal::JSArray::SetLengthWouldNormalize(unsigned int)
     75    0.3%    0.3%  v8::internal::JsonStringifier::SerializeJSReceiverSlow(v8::internal::Handle<v8::internal::JSReceiver>)
     70    0.3%    0.3%  v8::internal::String::GetFlatContent()
     68    0.3%    0.3%  v8::internal::(anonymous namespace)::FastElementsAccessor<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::MoveElements(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSArray>, v8::internal::Handle<v8::internal::FixedArrayBase>, int, int, int, int, int)
     60    0.3%    0.3%  v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
     59    0.2%    0.3%  v8::internal::Heap::AllocateUninitializedFixedArray(int)
     58    0.2%    0.3%  int v8::internal::Search<(v8::internal::SearchMode)1, v8::internal::DescriptorArray>(v8::internal::DescriptorArray*, v8::internal::Name*, int, int*)
     54    0.2%    0.2%  v8::internal::JSArray::SetLength(v8::internal::Handle<v8::internal::JSArray>, unsigned int)
     51    0.2%    0.2%  v8::internal::LookupIterator::LookupIterator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::LookupIterator::Configuration)
     50    0.2%    0.2%  void v8::internal::LookupIterator::Start<false>()
     49    0.2%    0.2%  v8::internal::Isolate::get_initial_js_array_map(v8::internal::ElementsKind)
     48    0.2%    0.2%  v8::internal::SaveContext::~SaveContext()
     47    0.2%    0.2%  v8::internal::Object::GetProperty(v8::internal::LookupIterator*)
     46    0.2%    0.2%  v8::internal::JSArray::HasReadOnlyLength(v8::internal::Handle<v8::internal::JSArray>)
     45    0.2%    0.2%  v8::internal::String::SlowFlatten(v8::internal::Handle<v8::internal::ConsString>, v8::internal::PretenureFlag)
     44    0.2%    0.2%  v8::internal::LookupIterator::LookupIterator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::LookupIterator::Configuration)
     44    0.2%    0.2%  v8::internal::Isolate::IsAnyInitialArrayPrototype(v8::internal::Handle<v8::internal::JSArray>)
     43    0.2%    0.2%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::SetLengthImpl(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSArray>, unsigned int, v8::internal::Handle<v8::internal::FixedArrayBase>)
     43    0.2%    0.2%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::SetLength(v8::internal::Handle<v8::internal::JSArray>, unsigned int)
     41    0.2%    0.2%  v8::internal::LargeObjectSpace::Contains(v8::internal::HeapObject*)
     40    0.2%    0.2%  v8::internal::Builtin_Impl_ArraySlice(v8::internal::BuiltinArguments, v8::internal::Isolate*)
     39    0.2%    0.2%  v8::internal::IncrementalMarking::MarkGrey(v8::internal::Heap*, v8::internal::HeapObject*)
     36    0.2%    0.2%  void std::__1::__insertion_sort_3<v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&, v8::internal::Smi**>(v8::internal::Smi**, v8::internal::Smi**, v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&)
     34    0.1%    0.2%  v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::NumberOfElementsFilterAttributes(v8::internal::PropertyFilter)
     33    0.1%    0.2%  v8::internal::NameDictionaryBase<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::FindEntry(v8::internal::Handle<v8::internal::Name>)
     33    0.1%    0.2%  v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::CopyEnumKeysTo(v8::internal::Handle<v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> > >, v8::internal::Handle<v8::internal::FixedArray>, v8::internal::KeyCollectionMode, v8::internal::KeyAccumulator*)
     31    0.1%    0.1%  v8::internal::LookupIterator::FetchValue() const
     30    0.1%    0.1%  v8::internal::JSObject::GetElementsAccessor()
     27    0.1%    0.1%  v8::internal::Heap::CanMoveObjectStart(v8::internal::HeapObject*)
     26    0.1%    0.1%  v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>)
     24    0.1%    0.1%  void v8::internal::BodyDescriptorBase::IterateBodyImpl<v8::internal::IncrementalMarkingMarkingVisitor>(v8::internal::Heap*, v8::internal::HeapObject*, int, int)
     20    0.1%    0.1%  v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag)
     18    0.1%    0.1%  v8::internal::Object* v8::internal::VisitWeakList<v8::internal::JSFunction>(v8::internal::Heap*, v8::internal::Object*, v8::internal::WeakObjectRetainer*)
     18    0.1%    0.1%  v8::internal::MemoryChunk::Initialize(v8::internal::Heap*, unsigned char*, unsigned long, unsigned char*, unsigned char*, v8::internal::Executability, v8::internal::Space*, v8::base::VirtualMemory*)
     17    0.1%    0.1%  v8::internal::IncrementalMarking::RecordWriteSlow(v8::internal::HeapObject*, v8::internal::Object**, v8::internal::Object*)
     16    0.1%    0.1%  v8::internal::StaticMarkingVisitor<v8::internal::IncrementalMarkingMarkingVisitor>::MarkMapContents(v8::internal::Heap*, v8::internal::Map*)
     16    0.1%    0.1%  v8::internal::LookupIterator::NotFound(v8::internal::JSReceiver*) const
     14    0.1%    0.1%  void v8::internal::RelocInfo::Visit<v8::internal::IncrementalMarkingMarkingVisitor>(v8::internal::Heap*)
     14    0.1%    0.1%  void v8::internal::BodyDescriptorBase::IterateBodyImpl<v8::internal::StaticScavengeVisitor<(v8::internal::PromotionMode)1> >(v8::internal::Heap*, v8::internal::HeapObject*, int, int)
     13    0.1%    0.1%  v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::LookupIterator::Configuration)
     13    0.1%    0.1%  v8::internal::JsonStringifier::SerializeArrayLikeSlow(v8::internal::Handle<v8::internal::JSReceiver>, unsigned int, unsigned int)
     13    0.1%    0.1%  v8::internal::AllocationMemento* v8::internal::Heap::FindAllocationMemento<(v8::internal::Heap::FindMementoMode)1>(v8::internal::HeapObject*)
     13    0.1%    0.1%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::GetImpl(v8::internal::FixedArrayBase*, unsigned int)
     11    0.0%    0.1%  v8::internal::HeapObject::SizeFromMap(v8::internal::Map*)
     11    0.0%    0.1%  v8::internal::Heap::IteratePromotedObjectPointers(v8::internal::HeapObject*, unsigned char*, unsigned char*, bool, void (*)(v8::internal::HeapObject**, v8::internal::HeapObject*))
     10    0.0%    0.0%  v8::internal::PerIsolateAssertScope<(v8::internal::PerIsolateAssertType)1, false>::IsAllowed(v8::internal::Isolate*)
      8    0.0%    0.0%  v8::internal::NewSpace::UpdateAllocationInfo()
      8    0.0%    0.0%  v8::internal::JSObject::MigrateToMap(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Map>, int)
      8    0.0%    0.0%  v8::internal::InnerPointerToCodeCache::GetCacheEntry(unsigned char*)
      8    0.0%    0.0%  v8::internal::IncrementalMarking::MarkBlack(v8::internal::HeapObject*, int)
      8    0.0%    0.0%  v8::internal::Heap::AllocateFixedArrayWithFiller(int, v8::internal::PretenureFlag, v8::internal::Object*)
      8    0.0%    0.0%  v8::internal::Handle<v8::internal::String> v8::internal::JsonParser<false>::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int)
      8    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::Slice(v8::internal::Handle<v8::internal::JSObject>, unsigned int, unsigned int)
      7    0.0%    0.0%  v8::internal::StoreBuffer::MoveEntriesToRememberedSet()
      7    0.0%    0.0%  v8::internal::Scanner::Scan()
      7    0.0%    0.0%  v8::internal::JSObject::GetElementsTransitionMap(v8::internal::Handle<v8::internal::JSObject>, v8::internal::ElementsKind)
      7    0.0%    0.0%  v8::internal::IncrementalMarking::WhiteToGreyAndPush(v8::internal::HeapObject*, v8::internal::MarkBit)
      7    0.0%    0.0%  v8::internal::IncrementalMarking::ProcessWeakCells()
      7    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::GrowCapacityAndConvertImpl(v8::internal::Handle<v8::internal::JSObject>, unsigned int)
      6    0.0%    0.0%  v8::internal::TransitionArray::Insert(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Map>, v8::internal::SimpleTransitionFlag)
      6    0.0%    0.0%  v8::internal::StringTableCleaner<false, true>::VisitPointers(v8::internal::Object**, v8::internal::Object**)
      6    0.0%    0.0%  v8::internal::SlotSet::Insert(int)
      6    0.0%    0.0%  v8::internal::SemiSpace::FixPagesFlags(long, long)
      6    0.0%    0.0%  v8::internal::ScavengeVisitor::VisitPointer(v8::internal::Object**)
      6    0.0%    0.0%  v8::internal::Scanner::ScanIdentifierOrKeyword()
      6    0.0%    0.0%  v8::internal::LookupIterator::State v8::internal::LookupIterator::LookupInRegularHolder<true>(v8::internal::Map*, v8::internal::JSReceiver*)
      6    0.0%    0.0%  node::Buffer::Utf8Slice(v8::FunctionCallbackInfo<v8::Value> const&)
      6    0.0%    0.0%  bool v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::SemiSpaceCopyObject<(v8::internal::AllocationAlignment)0>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int)
      5    0.0%    0.0%  void v8::internal::String::WriteToFlat<unsigned char>(v8::internal::String*, unsigned char*, int, int)
      5    0.0%    0.0%  v8::internal::Scavenger::ScavengeObjectSlow(v8::internal::HeapObject**, v8::internal::HeapObject*)
      5    0.0%    0.0%  v8::internal::ScavengeWeakObjectRetainer::RetainAs(v8::internal::Object*)
      5    0.0%    0.0%  v8::internal::PerIsolateAssertScope<(v8::internal::PerIsolateAssertType)0, true>::IsAllowed(v8::internal::Isolate*)
      5    0.0%    0.0%  v8::internal::JSFunction::ClearTypeFeedbackInfoAtGCTime()
      5    0.0%    0.0%  v8::internal::Heap::AllocateRawTwoByteString(int, v8::internal::PretenureFlag)
      5    0.0%    0.0%  v8::internal::ArrayBufferTracker::ProcessBuffers(v8::internal::Page*, v8::internal::ArrayBufferTracker::ProcessingMode)
      5    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::PrependElementIndices(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::FixedArrayBase>, v8::internal::Handle<v8::internal::FixedArray>, v8::internal::GetKeysConversion, v8::internal::PropertyFilter)
      5    0.0%    0.0%  node::crypto::SecureContext::AddRootCerts(v8::FunctionCallbackInfo<v8::Value> const&)
      5    0.0%    0.0%  node::Binding(v8::FunctionCallbackInfo<v8::Value> const&)
      4    0.0%    0.0%  void v8::internal::Scanner::Advance<false, true>()
      4    0.0%    0.0%  void v8::internal::LookupIterator::Start<true>()
      4    0.0%    0.0%  v8::internal::Zone::New(unsigned long)
      4    0.0%    0.0%  v8::internal::TransitionArray::SearchTransition(v8::internal::Map*, v8::internal::PropertyKind, v8::internal::Name*, v8::internal::PropertyAttributes)
      4    0.0%    0.0%  v8::internal::String::IsOneByteEqualTo(v8::internal::Vector<unsigned char const>)
      4    0.0%    0.0%  v8::internal::SourcePositionTableIterator::Advance()
      4    0.0%    0.0%  v8::internal::SerializerDeserializer::Iterate(v8::internal::Isolate*, v8::internal::ObjectVisitor*)
      4    0.0%    0.0%  v8::internal::Script::GetPositionInfo(int, v8::internal::Script::PositionInfo*, v8::internal::Script::OffsetFlag)
      4    0.0%    0.0%  v8::internal::ScopeInfo::Create(v8::internal::Isolate*, v8::internal::Zone*, v8::internal::Scope*, v8::internal::MaybeHandle<v8::internal::ScopeInfo>)
      4    0.0%    0.0%  v8::internal::Scavenger::ScavengeObject(v8::internal::HeapObject**, v8::internal::HeapObject*)
      4    0.0%    0.0%  v8::internal::Scanner::HandleLeadSurrogate()
      4    0.0%    0.0%  v8::internal::NewSpace::AddFreshPage()
      4    0.0%    0.0%  v8::internal::InternalizedStringKey::IsMatch(v8::internal::Object*)
      4    0.0%    0.0%  v8::internal::IntToCString(int, v8::internal::Vector<char>)
      4    0.0%    0.0%  v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer(unsigned char*)
      4    0.0%    0.0%  v8::internal::Heap::IteratePromotedObject(v8::internal::HeapObject*, int, bool, void (*)(v8::internal::HeapObject**, v8::internal::HeapObject*))
      4    0.0%    0.0%  v8::internal::FixStaleLeftTrimmedHandlesVisitor::VisitPointers(v8::internal::Object**, v8::internal::Object**)
      4    0.0%    0.0%  v8::internal::DescriptorArray::Sort()
      4    0.0%    0.0%  v8::internal::ConsString* v8::internal::String::VisitFlat<v8::internal::IteratingStringHasher>(v8::internal::IteratingStringHasher*, v8::internal::String*, int)
      4    0.0%    0.0%  v8::internal::Code::CopyFrom(v8::internal::CodeDesc const&)
      4    0.0%    0.0%  bool v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::PromoteObject<(v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::ObjectContents)1, (v8::internal::AllocationAlignment)0>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int)
      3    0.0%    0.0%  void v8::internal::Heap::RightTrimFixedArray<(v8::internal::Heap::InvocationMode)1>(v8::internal::FixedArrayBase*, int)
      3    0.0%    0.0%  v8::internal::ScavengeVisitor::VisitPointers(v8::internal::Object**, v8::internal::Object**)
      3    0.0%    0.0%  v8::internal::RelocIterator::next()
      3    0.0%    0.0%  v8::internal::RelocIterator::RelocIterator(v8::internal::Code*, int)
      3    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::GetUnexpectedTokenMessage(v8::internal::Token::Value, v8::internal::MessageTemplate::Template*, v8::internal::Scanner::Location*, char const**, v8::internal::MessageTemplate::Template)
      3    0.0%    0.0%  v8::internal::Object::ToInt32(int*)
      3    0.0%    0.0%  v8::internal::Object* v8::internal::VisitWeakList<v8::internal::AllocationSite>(v8::internal::Heap*, v8::internal::Object*, v8::internal::WeakObjectRetainer*)
      3    0.0%    0.0%  v8::internal::NewSpace::ResetAllocationInfo()
      3    0.0%    0.0%  v8::internal::NewSpace::AllocatedSinceLastGC()
      3    0.0%    0.0%  v8::internal::MarkCompactCollector::RecordRelocSlot(v8::internal::Code*, v8::internal::RelocInfo*, v8::internal::Object*)
      3    0.0%    0.0%  v8::internal::KeywordOrIdentifierToken(unsigned char const*, int)
      3    0.0%    0.0%  v8::internal::JsonStringifier::SerializeSmi(v8::internal::Smi*)
      3    0.0%    0.0%  v8::internal::JSObjectWalkVisitor<v8::internal::AllocationSiteUsageContext>::StructureWalk(v8::internal::Handle<v8::internal::JSObject>)
      3    0.0%    0.0%  v8::internal::JSObjectWalkVisitor<v8::internal::AllocationSiteCreationContext>::StructureWalk(v8::internal::Handle<v8::internal::JSObject>)
      3    0.0%    0.0%  v8::internal::JSObject::OptimizeAsPrototype(v8::internal::Handle<v8::internal::JSObject>, v8::internal::PrototypeOptimizationMode)
      3    0.0%    0.0%  v8::internal::Heap::CreateFillerObjectAt(unsigned char*, int, v8::internal::ClearRecordedSlots, v8::internal::ClearBlackArea)
      3    0.0%    0.0%  v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::EnsureCapacity(v8::internal::Handle<v8::internal::NameDictionary>, int, v8::internal::Handle<v8::internal::Name>, v8::internal::PretenureFlag)
      3    0.0%    0.0%  v8::internal::HandleScope::Extend(v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Handle<v8::internal::String> v8::internal::JsonParser<false>::SlowScanJsonString<v8::internal::SeqTwoByteString, unsigned short>(v8::internal::Handle<v8::internal::String>, int, int)
      3    0.0%    0.0%  v8::internal::FlatStringReader::FlatStringReader(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>)
      3    0.0%    0.0%  v8::internal::FastKeyAccumulator::GetKeysFast(v8::internal::GetKeysConversion)
      3    0.0%    0.0%  v8::internal::Factory::GetNumberStringCache(v8::internal::Handle<v8::internal::Object>)
      3    0.0%    0.0%  v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ClearExceptionFlag)
      3    0.0%    0.0%  v8::internal::Code::GetCodeAgeAndParity(v8::internal::Code*, v8::internal::Code::Age*, v8::internal::MarkingParity*)
      3    0.0%    0.0%  v8::internal::Builtin_ArraySlice(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::AstValueFactory::GetString(unsigned int, bool, v8::internal::Vector<unsigned char const>)
      3    0.0%    0.0%  v8::internal::AstValueFactory::GetOneByteStringInternal(v8::internal::Vector<unsigned char const>)
      3    0.0%    0.0%  v8::internal::AbstractCode::SourcePosition(int)
      3    0.0%    0.0%  v8::base::TemplateHashMapImpl<void*, void*, v8::base::HashEqualityThenKeyMatcher<void*, bool (*)(void*, void*)>, v8::base::DefaultAllocationPolicy>::Probe(void* const&, unsigned int) const
      3    0.0%    0.0%  unsigned int std::__1::__sort3<v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&, v8::internal::Smi**>(v8::internal::Smi**, v8::internal::Smi**, v8::internal::Smi**, v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&)
      3    0.0%    0.0%  node::TTYWrap::New(v8::FunctionCallbackInfo<v8::Value> const&)
      3    0.0%    0.0%  node::InternalModuleReadFile(v8::FunctionCallbackInfo<v8::Value> const&)
      3    0.0%    0.0%  _uv__fs_work
      2    0.0%    0.0%  void v8::internal::Heap::UpdateAllocationSite<(v8::internal::Heap::UpdateAllocationSiteMode)0>(v8::internal::HeapObject*, v8::base::PointerTemplateHashMapImpl<v8::base::DefaultAllocationPolicy>*)
      2    0.0%    0.0%  void v8::Utf8WriterVisitor::Visit<unsigned char>(unsigned char const*, int)
      2    0.0%    0.0%  v8::internal::compiler::GraphReducer::ReduceTop()
      2    0.0%    0.0%  v8::internal::StringTable::LookupString(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>)
      2    0.0%    0.0%  v8::internal::String::CalculateLineEnds(v8::internal::Handle<v8::internal::String>, bool)
      2    0.0%    0.0%  v8::internal::StoreIC::Store(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed)
      2    0.0%    0.0%  v8::internal::StaticMarkingVisitor<v8::internal::IncrementalMarkingMarkingVisitor>::VisitJSFunctionStrongCode(v8::internal::Map*, v8::internal::HeapObject*)
      2    0.0%    0.0%  v8::internal::Space::CommittedMemory()
      2    0.0%    0.0%  v8::internal::Scope::LookupRecursive(v8::internal::VariableProxy*, v8::internal::Scope*)
      2    0.0%    0.0%  v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::RememberedSet<(v8::internal::PointerDirection)1>::Insert(v8::internal::MemoryChunk*, unsigned char*)
      2    0.0%    0.0%  v8::internal::RememberedSet<(v8::internal::PointerDirection)1>::ClearInvalidSlots(v8::internal::Heap*)
      2    0.0%    0.0%  v8::internal::PropertyHandlerCompiler::CheckPrototypes(v8::internal::Register, v8::internal::Register, v8::internal::Register, v8::internal::Register, v8::internal::Handle<v8::internal::Name>, v8::internal::Label*, v8::internal::PrototypeCheckType, v8::internal::ReturnHolder)
      2    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseExpressionCoverGrammar(bool, bool*)
      2    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseBinaryExpression(int, bool, bool*)
      2    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseAssignmentExpression(bool, bool*)
      2    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseArguments(v8::internal::Scanner::Location*, bool, bool*)
      2    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::CheckPossibleEvalCall(v8::internal::Expression*, v8::internal::Scope*)
      2    0.0%    0.0%  v8::internal::Parser::ParseLazy(v8::internal::Isolate*, v8::internal::ParseInfo*)
      2    0.0%    0.0%  v8::internal::PagedSpace::RefillFreeList()
      2    0.0%    0.0%  v8::internal::PagedSpace::AllocateRawUnaligned(int, v8::internal::PagedSpace::UpdateSkipList)
      2    0.0%    0.0%  v8::internal::Operand::Operand(v8::internal::Register, int)
      2    0.0%    0.0%  v8::internal::MemoryAllocator::AllocateChunk(long, long, v8::internal::Executability, v8::internal::Space*)
      2    0.0%    0.0%  v8::internal::LookupIterator::WriteDataValue(v8::internal::Handle<v8::internal::Object>)
      2    0.0%    0.0%  v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, bool*, v8::internal::LookupIterator::Configuration)
      2    0.0%    0.0%  v8::internal::LookupIterator::GetDataValue() const
      2    0.0%    0.0%  v8::internal::LiveRange::CreateAssignedOperand(v8::internal::Zone*)
      2    0.0%    0.0%  v8::internal::List<v8::internal::Object**, v8::internal::FreeStoreAllocationPolicy>::Remove(int)
      2    0.0%    0.0%  v8::internal::List<v8::internal::Object**, v8::internal::FreeStoreAllocationPolicy>::Add(v8::internal::Object** const&, v8::internal::FreeStoreAllocationPolicy)
      2    0.0%    0.0%  v8::internal::KeyAccumulator::GetKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::KeyCollectionMode, v8::internal::PropertyFilter, v8::internal::GetKeysConversion, bool)
      2    0.0%    0.0%  v8::internal::JsonParser<true>::CommitStateToJsonObject(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Map>, v8::internal::ZoneList<v8::internal::Handle<v8::internal::Object> >*)
      2    0.0%    0.0%  v8::internal::JSStackFrame::GetMethodName()
      2    0.0%    0.0%  v8::internal::JSObject::RawFastPropertyAtPut(v8::internal::FieldIndex, v8::internal::Object*)
      2    0.0%    0.0%  v8::internal::JSObject::MakePrototypesFast(v8::internal::Handle<v8::internal::Object>, v8::internal::WhereToStart, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::JSDate::SetValue(v8::internal::Object*, bool)
      2    0.0%    0.0%  v8::internal::IteratingStringHasher::VisitConsString(v8::internal::ConsString*)
      2    0.0%    0.0%  v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental(v8::internal::Map*, v8::internal::HeapObject*)
      2    0.0%    0.0%  v8::internal::IncrementalMarking::DeactivateIncrementalWriteBarrier()
      2    0.0%    0.0%  v8::internal::Heap::DoScavenge(v8::internal::ObjectVisitor*, unsigned char*, v8::internal::PromotionMode)
      2    0.0%    0.0%  v8::internal::Heap::DeoptMarkedAllocationSites()
      2    0.0%    0.0%  v8::internal::Heap::AllocateRawOneByteString(int, v8::internal::PretenureFlag)
      2    0.0%    0.0%  v8::internal::Heap::AllocateMap(v8::internal::InstanceType, int, v8::internal::ElementsKind)
      2    0.0%    0.0%  v8::internal::Heap::AllocateCode(int, bool)
      2    0.0%    0.0%  v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape, v8::internal::HashTableKey*>::FindEntry(v8::internal::Isolate*, v8::internal::HashTableKey*)
      2    0.0%    0.0%  v8::internal::Handle<v8::internal::String> v8::internal::JsonParser<true>::ScanJsonString<true>()
      2    0.0%    0.0%  v8::internal::HValue::RegisterUse(int, v8::internal::HValue*)
      2    0.0%    0.0%  v8::internal::FuncNameInferrer::PushVariableName(v8::internal::AstRawString const*)
      2    0.0%    0.0%  v8::internal::Factory::NewFunction(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::SharedFunctionInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::PretenureFlag)
      2    0.0%    0.0%  v8::internal::ExpressionClassifier<v8::internal::ParserTypes<v8::internal::Parser> >::Accumulate(v8::internal::ExpressionClassifier<v8::internal::ParserTypes<v8::internal::Parser> >*, unsigned int, bool)
      2    0.0%    0.0%  v8::internal::DescriptorArray::SetDescriptor(int, v8::internal::Descriptor*)
      2    0.0%    0.0%  v8::internal::ContextSlotCache::Lookup(v8::internal::Object*, v8::internal::String*, v8::internal::VariableMode*, v8::internal::InitializationFlag*, v8::internal::MaybeAssignedFlag*)
      2    0.0%    0.0%  v8::internal::ConsString* v8::internal::String::VisitFlat<v8::Utf8WriterVisitor>(v8::Utf8WriterVisitor*, v8::internal::String*, int)
      2    0.0%    0.0%  v8::internal::Assembler::movp(v8::internal::Register, void*, v8::internal::RelocInfo::Mode)
      2    0.0%    0.0%  v8::internal::Accessors::FunctionLengthGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  v8::internal::Accessors::ErrorStackGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::FastSmiOrObjectElementsAccessor<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::CopyElementsImpl(v8::internal::FixedArrayBase*, unsigned int, v8::internal::FixedArrayBase*, v8::internal::ElementsKind, unsigned int, int, int)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::EncodeInt(v8::internal::ZoneVector<unsigned char>&, int)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedSmiElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)0> >::GetEntryForIndex(v8::internal::JSObject*, v8::internal::FixedArrayBase*, unsigned int)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::GetEntryForIndex(v8::internal::JSObject*, v8::internal::FixedArrayBase*, unsigned int)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::DirectCollectElementIndicesImpl(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::FixedArrayBase>, v8::internal::GetKeysConversion, v8::internal::PropertyFilter, v8::internal::Handle<v8::internal::FixedArray>, unsigned int*, unsigned int)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::ConvertElementsWithCapacity(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::FixedArrayBase>, v8::internal::ElementsKind, unsigned int, unsigned int, unsigned int, int)
      2    0.0%    0.0%  v8::base::TemplateHashMapImpl<void*, void*, v8::base::KeyEqualityMatcher<void*>, v8::internal::ZoneAllocationPolicy>::Initialize(unsigned int, v8::internal::ZoneAllocationPolicy)
      2    0.0%    0.0%  v8::base::TemplateHashMapEntry<void*, void*>* v8::base::TemplateHashMapImpl<void*, void*, v8::base::HashEqualityThenKeyMatcher<void*, bool (*)(void*, void*)>, v8::base::DefaultAllocationPolicy>::LookupOrInsert<v8::base::TemplateHashMapImpl<void*, void*, v8::base::HashEqualityThenKeyMatcher<void*, bool (*)(void*, void*)>, v8::base::DefaultAllocationPolicy>::LookupOrInsert(void* const&, unsigned int, v8::base::DefaultAllocationPolicy)::'lambda'()>(void* const&, unsigned int, v8::base::TemplateHashMapImpl<void*, void*, v8::base::HashEqualityThenKeyMatcher<void*, bool (*)(void*, void*)>, v8::base::DefaultAllocationPolicy>::LookupOrInsert(void* const&, unsigned int, v8::base::DefaultAllocationPolicy)::'lambda'() const&, v8::base::DefaultAllocationPolicy)
      2    0.0%    0.0%  node::Stat(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  node::Read(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  node::FStat(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  node::ContextifyScript::RunInThisContext(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  int v8::internal::BinarySearch<(v8::internal::SearchMode)0, v8::internal::TransitionArray>(v8::internal::TransitionArray*, v8::internal::Name*, int, int*)
      1    0.0%    0.0%  void v8::internal::WeakListVisitor<v8::internal::Context>::DoWeakList<v8::internal::JSFunction>(v8::internal::Heap*, v8::internal::Context*, v8::internal::WeakObjectRetainer*, int)
      1    0.0%    0.0%  void v8::internal::RememberedSet<(v8::internal::PointerDirection)0>::IterateMemoryChunks<void v8::internal::UpdatePointersInParallel<(v8::internal::PointerDirection)0>(v8::internal::Heap*, v8::base::Semaphore*)::MemoryChunkVisitor>(v8::internal::Heap*, void v8::internal::UpdatePointersInParallel<(v8::internal::PointerDirection)0>(v8::internal::Heap*, v8::base::Semaphore*)::MemoryChunkVisitor)
      1    0.0%    0.0%  void v8::internal::FlexibleBodyVisitor<v8::internal::IncrementalMarkingMarkingVisitor, v8::internal::FlexibleBodyDescriptor<8>, void>::VisitSpecialized<56>(v8::internal::Map*, v8::internal::HeapObject*)
      1    0.0%    0.0%  void v8::internal::FlexibleBodyVisitor<v8::internal::IncrementalMarkingMarkingVisitor, v8::internal::FlexibleBodyDescriptor<8>, void>::VisitSpecialized<32>(v8::internal::Map*, v8::internal::HeapObject*)
      1    0.0%    0.0%  void v8::internal::Code::BodyDescriptor::IterateBody<v8::internal::IncrementalMarkingMarkingVisitor>(v8::internal::HeapObject*)
      1    0.0%    0.0%  void v8::internal::BodyDescriptorApply<v8::internal::CallIterateBody, void, v8::internal::HeapObject*, int, v8::internal::ObjectVisitor*>(v8::internal::InstanceType, v8::internal::HeapObject*, int, v8::internal::ObjectVisitor*)
      1    0.0%    0.0%  void std::__1::vector<unsigned char, v8::internal::zone_allocator<unsigned char> >::__push_back_slow_path<unsigned char>(unsigned char&&)
      1    0.0%    0.0%  void std::__1::__sort<v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&, v8::internal::Smi**>(v8::internal::Smi**, v8::internal::Smi**, v8::internal::EnumIndexComparator<v8::internal::NameDictionary>&)
      1    0.0%    0.0%  void node::StreamBase::JSMethod<node::TLSWrap, &(node::StreamBase::Writev(v8::FunctionCallbackInfo<v8::Value> const&))>(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  void node::StreamBase::JSMethod<node::StreamWrap, &(node::StreamBase::WriteBuffer(v8::FunctionCallbackInfo<v8::Value> const&))>(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  void node::StreamBase::JSMethod<node::StreamWrap, &(int node::StreamBase::WriteString<(node::encoding)1>(v8::FunctionCallbackInfo<v8::Value> const&))>(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  v8::platform::DefaultPlatform::MonotonicallyIncreasingTime()
      1    0.0%    0.0%  v8::internal::compiler::SpecialRPONumberer::ComputeAndInsertSpecialRPO(v8::internal::compiler::BasicBlock*, v8::internal::compiler::BasicBlock*)
      1    0.0%    0.0%  v8::internal::compiler::PipelineImpl::AllocateRegisters(v8::internal::RegisterConfiguration const*, v8::internal::compiler::CallDescriptor*, bool)
      1    0.0%    0.0%  v8::internal::compiler::MoveOptimizer::FinalizeMoves(v8::internal::compiler::Instruction*)
      1    0.0%    0.0%  v8::internal::compiler::LiveRange::FirstIntersection(v8::internal::compiler::LiveRange*) const
      1    0.0%    0.0%  v8::internal::compiler::InstructionSelector::VisitNode(v8::internal::compiler::Node*)
      1    0.0%    0.0%  v8::internal::compiler::CodeGenerator::AssembleArchInstruction(v8::internal::compiler::Instruction*)
      1    0.0%    0.0%  v8::internal::compiler::AstGraphBuilder::VisitCall(v8::internal::Call*)
      1    0.0%    0.0%  v8::internal::Zone::NewExpand(unsigned long)
      1    0.0%    0.0%  v8::internal::Zone::DeleteAll()
      1    0.0%    0.0%  v8::internal::WeakFixedArray::Set(v8::internal::Handle<v8::internal::WeakFixedArray>, int, v8::internal::Handle<v8::internal::HeapObject>)
      1    0.0%    0.0%  v8::internal::VariableProxy::VariableProxy(v8::internal::AstRawString const*, v8::internal::VariableKind, int, int)
      1    0.0%    0.0%  v8::internal::Variable::Variable(v8::internal::Scope*, v8::internal::AstRawString const*, v8::internal::VariableMode, v8::internal::VariableKind, v8::internal::InitializationFlag, v8::internal::MaybeAssignedFlag)
      1    0.0%    0.0%  v8::internal::VSNPrintF(v8::internal::Vector<char>, char const*, __va_list_tag*)
      1    0.0%    0.0%  v8::internal::TypeFeedbackVector::New(v8::internal::Isolate*, v8::internal::Handle<v8::internal::TypeFeedbackMetadata>)
      1    0.0%    0.0%  v8::internal::TransitionArray::ReplaceTransitions(v8::internal::Handle<v8::internal::Map>, v8::internal::Object*)
      1    0.0%    0.0%  v8::internal::TransitionArray::ExpectedTransitionKey(v8::internal::Handle<v8::internal::Map>)
      1    0.0%    0.0%  v8::internal::ToBooleanICStub::Types::UpdateStatus(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::TimerEventScope<v8::internal::TimerEventCompileCode>::LogTimerEvent(v8::internal::Logger::StartEnd)
      1    0.0%    0.0%  v8::internal::StubCache::Set(v8::internal::Name*, v8::internal::Map*, v8::internal::Code*)
      1    0.0%    0.0%  v8::internal::StringTable::LookupKey(v8::internal::Isolate*, v8::internal::HashTableKey*)
      1    0.0%    0.0%  v8::internal::StringComparator::Equals(v8::internal::String*, v8::internal::String*)
      1    0.0%    0.0%  v8::internal::String::ToCString(v8::internal::AllowNullsFlag, v8::internal::RobustnessFlag, int, int, int*)
      1    0.0%    0.0%  v8::internal::StoreIC::LookupForWrite(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed)
      1    0.0%    0.0%  v8::internal::StatsCounter::Increment()
      1    0.0%    0.0%  v8::internal::StaticMarkingVisitor<v8::internal::IncrementalMarkingMarkingVisitor>::VisitSharedFunctionInfo(v8::internal::Map*, v8::internal::HeapObject*)
      1    0.0%    0.0%  v8::internal::StaticMarkingVisitor<v8::internal::IncrementalMarkingMarkingVisitor>::VisitJSFunctionWeakCode(v8::internal::Map*, v8::internal::HeapObject*)
      1    0.0%    0.0%  v8::internal::StackFrameIteratorBase::SingletonFor(v8::internal::StackFrame::Type)
      1    0.0%    0.0%  v8::internal::StackFrame::ComputeType(v8::internal::StackFrameIteratorBase const*, v8::internal::StackFrame::State*)
      1    0.0%    0.0%  v8::internal::SourcePositionTableBuilder::AddPosition(unsigned long, int, bool)
      1    0.0%    0.0%  v8::internal::SnapshotByteSource::CopyRaw(unsigned char*, int)
      1    0.0%    0.0%  v8::internal::SlotSet::AllocateBucket()
      1    0.0%    0.0%  v8::internal::SkipList::Update(unsigned char*, int)
      1    0.0%    0.0%  v8::internal::SimpleStringBuilder::AddString(char const*)
      1    0.0%    0.0%  v8::internal::SharedFunctionInfoMarkingVisitor::VisitPointer(v8::internal::Object**)
      1    0.0%    0.0%  v8::internal::SeqString::Truncate(v8::internal::Handle<v8::internal::SeqString>, int)
      1    0.0%    0.0%  v8::internal::Script::InitLineEnds(v8::internal::Handle<v8::internal::Script>)
      1    0.0%    0.0%  v8::internal::ScopeInfo::scope_type()
      1    0.0%    0.0%  v8::internal::ScopeInfo::ContextSlotIndex(v8::internal::Handle<v8::internal::ScopeInfo>, v8::internal::Handle<v8::internal::String>, v8::internal::VariableMode*, v8::internal::InitializationFlag*, v8::internal::MaybeAssignedFlag*)
      1    0.0%    0.0%  v8::internal::Scope::Scope(v8::internal::Zone*, v8::internal::ScopeType, v8::internal::Handle<v8::internal::ScopeInfo>)
      1    0.0%    0.0%  v8::internal::Scope::LookupInScopeInfo(v8::internal::AstRawString const*)
      1    0.0%    0.0%  v8::internal::Scope::DeclareVariable(v8::internal::Declaration*, v8::internal::VariableMode, v8::internal::InitializationFlag, bool, bool*, bool*)
      1    0.0%    0.0%  v8::internal::Scope::CheckConflictingVarDeclarations()
      1    0.0%    0.0%  v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::EvacuateSeqTwoByteString(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*)
      1    0.0%    0.0%  v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::EvacuateFixedArray(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*)
      1    0.0%    0.0%  v8::internal::Scanner::SkipSingleLineComment()
      1    0.0%    0.0%  v8::internal::Scanner::ScanString()
      1    0.0%    0.0%  v8::internal::Scanner::Next()
      1    0.0%    0.0%  v8::internal::SafepointTableBuilder::Emit(v8::internal::Assembler*, int)
      1    0.0%    0.0%  v8::internal::Runtime_StoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ResolvePossiblyDirectEval(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ObjectHasOwnProperty(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_NewClosure_Tenured(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_NewClosure(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_KeyedLoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime::SetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode)
      1    0.0%    0.0%  v8::internal::RememberedSet<(v8::internal::PointerDirection)0>::Insert(v8::internal::MemoryChunk*, unsigned char*)
      1    0.0%    0.0%  v8::internal::RelocInfoWriter::Write(v8::internal::RelocInfo const*)
      1    0.0%    0.0%  v8::internal::RegExpMacroAssemblerX64::register_location(int)
      1    0.0%    0.0%  v8::internal::RegExpKey::IsMatch(v8::internal::Object*)
      1    0.0%    0.0%  v8::internal::RegExpBuilder::NeedsDesugaringForIgnoreCase(int)
      1    0.0%    0.0%  v8::internal::RegExpAlternative::RegExpAlternative(v8::internal::ZoneList<v8::internal::RegExpTree*>*)
      1    0.0%    0.0%  v8::internal::PrototypeIterator::Advance()
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseVariableDeclarations(v8::internal::ParserBase<v8::internal::Parser>::VariableDeclarationContext, v8::internal::ParserBase<v8::internal::Parser>::DeclarationParsingResult*, v8::internal::ZoneList<v8::internal::AstRawString const*>*, bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseStatementAsUnlabelled(v8::internal::ZoneList<v8::internal::AstRawString const*>*, bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParsePrimaryExpression(bool*, bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParsePostfixExpression(bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ParseLeftHandSideExpression(bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::IsTrivialExpression()
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::FunctionState::FunctionState(v8::internal::ParserBase<v8::internal::Parser>::FunctionState**, v8::internal::ParserBase<v8::internal::Parser>::ScopeState**, v8::internal::DeclarationScope*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::ExpectSemicolon(bool*)
      1    0.0%    0.0%  v8::internal::ParserBase<v8::internal::Parser>::BindingPatternUnexpectedToken()
      1    0.0%    0.0%  v8::internal::Parser::ShortcutNumericLiteralBinaryExpression(v8::internal::Expression**, v8::internal::Expression*, v8::internal::Token::Value, int)
      1    0.0%    0.0%  v8::internal::Parser::PatternRewriter::VisitVariableProxy(v8::internal::VariableProxy*)
      1    0.0%    0.0%  v8::internal::PagedSpace::SlowAllocateRaw(int)
      1    0.0%    0.0%  v8::internal::PagedSpace::ResetFreeListStatistics()
      1    0.0%    0.0%  v8::internal::PagedSpace::Expand()
      1    0.0%    0.0%  v8::internal::PagedSpace::CountTotalPages()
      1    0.0%    0.0%  v8::internal::OrderedHashSet::Add(v8::internal::Handle<v8::internal::OrderedHashSet>, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::ObjectLiteral::BuildConstantProperties(v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Object::SetPropertyInternal(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode, v8::internal::Object::StoreFromKeyed, bool*)
      1    0.0%    0.0%  v8::internal::Object::OptimalType(v8::internal::Isolate*, v8::internal::Representation)
      1    0.0%    0.0%  v8::internal::Object::GetMethod(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::Name>)
      1    0.0%    0.0%  v8::internal::Object* v8::internal::VisitWeakList<v8::internal::Code>(v8::internal::Heap*, v8::internal::Object*, v8::internal::WeakObjectRetainer*)
      1    0.0%    0.0%  v8::internal::NewSpace::Size()
      1    0.0%    0.0%  v8::internal::NamedLoadHandlerCompiler::FrontendHeader(v8::internal::Register, v8::internal::Handle<v8::internal::Name>, v8::internal::Label*, v8::internal::ReturnHolder)
      1    0.0%    0.0%  v8::internal::MarkCompactCollector::RecordCodeEntrySlot(v8::internal::HeapObject*, unsigned char*, v8::internal::Code*)
      1    0.0%    0.0%  v8::internal::MarkCompactCollector::ProcessWeakCollections()
      1    0.0%    0.0%  v8::internal::MarkCompactCollector::EvacuateNewSpaceVisitor::Visit(v8::internal::HeapObject*)
      1    0.0%    0.0%  v8::internal::Map::TransitionToDataProperty(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes, v8::internal::Object::StoreFromKeyed)
      1    0.0%    0.0%  v8::internal::Map::TransitionElementsTo(v8::internal::Handle<v8::internal::Map>, v8::internal::ElementsKind)
      1    0.0%    0.0%  v8::internal::Map::ReplaceDescriptors(v8::internal::DescriptorArray*, v8::internal::LayoutDescriptor*)
      1    0.0%    0.0%  v8::internal::Map::Reconfigure(v8::internal::Handle<v8::internal::Map>, v8::internal::ElementsKind, int, v8::internal::PropertyKind, v8::internal::PropertyAttributes, v8::internal::Representation, v8::internal::Handle<v8::internal::FieldType>, v8::internal::StoreMode)
      1    0.0%    0.0%  v8::internal::Map::RawCopy(v8::internal::Handle<v8::internal::Map>, int)
      1    0.0%    0.0%  v8::internal::Map::NumberOfFields()
      1    0.0%    0.0%  v8::internal::Map::GeneralizeFieldType(v8::internal::Handle<v8::internal::Map>, int, v8::internal::Representation, v8::internal::Handle<v8::internal::FieldType>)
      1    0.0%    0.0%  v8::internal::Map::FindRootMap()
      1    0.0%    0.0%  v8::internal::Map::EnsureDescriptorSlack(v8::internal::Handle<v8::internal::Map>, int)
      1    0.0%    0.0%  v8::internal::MacroAssembler::Move(v8::internal::Operand const&, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::LoadIC::UpdateCaches(v8::internal::LookupIterator*)
      1    0.0%    0.0%  v8::internal::LoadIC::SimpleFieldLoad(v8::internal::FieldIndex)
      1    0.0%    0.0%  v8::internal::LoadIC::GetMapIndependentHandler(v8::internal::LookupIterator*)
      1    0.0%    0.0%  v8::internal::LiveObjectIterator<(v8::internal::LiveObjectIterationMode)0>::Next()
      1    0.0%    0.0%  v8::internal::List<v8::internal::Handle<v8::internal::Object>, v8::internal::FreeStoreAllocationPolicy>::Add(v8::internal::Handle<v8::internal::Object> const&, v8::internal::FreeStoreAllocationPolicy)
      1    0.0%    0.0%  v8::internal::LayoutDescriptor::New(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::DescriptorArray>, int)
      1    0.0%    0.0%  v8::internal::LargeObjectSpace::SizeOfObjects()
      1    0.0%    0.0%  v8::internal::LParallelMove::IsRedundant() const
      1    0.0%    0.0%  v8::internal::LCodeGenBase::GenerateBody()
      1    0.0%    0.0%  v8::internal::LCodeGen::WriteTranslation(v8::internal::LEnvironment*, v8::internal::Translation*)
      1    0.0%    0.0%  v8::internal::LCodeGen::GenerateBodyInstructionPost(v8::internal::LInstruction*)
      1    0.0%    0.0%  v8::internal::LChunk::MarkEmptyBlocks()
      1    0.0%    0.0%  v8::internal::LChunk::LookupLiteralRepresentation(v8::internal::LSubKindOperand<(v8::internal::LOperand::Kind)2, 128>*) const
      1    0.0%    0.0%  v8::internal::KeyedStoreIC::Store(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::KeyAccumulator::GetOwnEnumPropertyKeys(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>)
      1    0.0%    0.0%  v8::internal::KeyAccumulator::CollectOwnPropertyNames(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>)
      1    0.0%    0.0%  v8::internal::JsonParser<true>::ParseJsonObject()
      1    0.0%    0.0%  v8::internal::JSObject::MigrateSlowToFast(v8::internal::Handle<v8::internal::JSObject>, int, char const*)
      1    0.0%    0.0%  v8::internal::JSFunction::EnsureHasInitialMap(v8::internal::Handle<v8::internal::JSFunction>)
      1    0.0%    0.0%  v8::internal::Isolate::UpdateArrayProtectorOnSetElement(v8::internal::Handle<v8::internal::JSObject>)
      1    0.0%    0.0%  v8::internal::IncrementalStringBuilder::Extend()
      1    0.0%    0.0%  v8::internal::IncrementalMarking::ActivateIncrementalWriteBarrier()
      1    0.0%    0.0%  v8::internal::IC::update_receiver_map(v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::IC::PostPatching(unsigned char*, v8::internal::Code*, v8::internal::Code*)
      1    0.0%    0.0%  v8::internal::IC::OnTypeFeedbackChanged(v8::internal::Isolate*, v8::internal::Code*)
      1    0.0%    0.0%  v8::internal::IC::ComputeHandler(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::Heap::GetFillToAlign(unsigned char*, v8::internal::AllocationAlignment)
      1    0.0%    0.0%  v8::internal::Heap::GarbageCollectionEpilogue()
      1    0.0%    0.0%  v8::internal::Heap::CopyJSObject(v8::internal::JSObject*, v8::internal::AllocationSite*)
      1    0.0%    0.0%  v8::internal::Heap::CopyFixedArrayAndGrow(v8::internal::FixedArray*, int, v8::internal::PretenureFlag)
      1    0.0%    0.0%  v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags)
      1    0.0%    0.0%  v8::internal::Heap::ClearRecordedSlotRange(unsigned char*, unsigned char*)
      1    0.0%    0.0%  v8::internal::Heap::AllocateFixedArray(int, v8::internal::PretenureFlag)
      1    0.0%    0.0%  v8::internal::Heap::AllocateFillerObject(int, bool, v8::internal::AllocationSpace)
      1    0.0%    0.0%  v8::internal::Heap::AdjustLiveBytes(v8::internal::HeapObject*, int, v8::internal::Heap::InvocationMode)
      1    0.0%    0.0%  v8::internal::HashTable<v8::internal::WeakHashTable, v8::internal::WeakHashTableShape<2>, v8::internal::Handle<v8::internal::Object> >::FindEntry(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>)
      1    0.0%    0.0%  v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::FindEntry(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Name>, int)
      1    0.0%    0.0%  v8::internal::HandleScope::DeleteExtensions(v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Handle<v8::internal::String> v8::internal::JsonParser<true>::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int)
      1    0.0%    0.0%  v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace)
      1    0.0%    0.0%  v8::internal::HRangeAnalysisPhase::TraceRange(char const*, ...)
      1    0.0%    0.0%  v8::internal::HOptimizedGraphBuilder::VisitCall(v8::internal::Call*)
      1    0.0%    0.0%  v8::internal::HOptimizedGraphBuilder::VisitArithmeticExpression(v8::internal::BinaryOperation*)
      1    0.0%    0.0%  v8::internal::HInstruction::position() const
      1    0.0%    0.0%  v8::internal::HConstant::Initialize(v8::internal::Representation)
      1    0.0%    0.0%  v8::internal::HConstant::FinalizeUniqueness()
      1    0.0%    0.0%  v8::internal::GlobalHandles::UpdateListOfNewSpaceNodes()
      1    0.0%    0.0%  v8::internal::GlobalHandles::IterateNewSpaceStrongAndDependentRoots(v8::internal::ObjectVisitor*)
      1    0.0%    0.0%  v8::internal::GlobalHandles::IdentifyWeakUnmodifiedObjects(bool (*)(v8::internal::Object**))
      1    0.0%    0.0%  v8::internal::GCTracer::Stop(v8::internal::GarbageCollector)
      1    0.0%    0.0%  v8::internal::GCTracer::Scope::~Scope()
      1    0.0%    0.0%  v8::internal::GCTracer::Print() const
      1    0.0%    0.0%  v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::result_register()
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::VisitVariableDeclaration(v8::internal::VariableDeclaration*)
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::VarOperand(v8::internal::Variable*, v8::internal::Register)
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::RestoreContext()
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::NeedsHoleCheckForLoad(v8::internal::VariableProxy*)
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::Generate()
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::EmitNamedPropertyAssignment(v8::internal::Assignment*)
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::EffectContext::DropAndPlug(int, v8::internal::Register) const
      1    0.0%    0.0%  v8::internal::FullCodeGenerator::CallStoreIC(v8::internal::FeedbackVectorSlot, v8::internal::Handle<v8::internal::Object>, v8::internal::TypeFeedbackId)
      1    0.0%    0.0%  v8::internal::FreeListCategory::Relink()
      1    0.0%    0.0%  v8::internal::FeedbackNexus::FindHandlerForMap(v8::internal::Handle<v8::internal::Map>) const
      1    0.0%    0.0%  v8::internal::FeedbackNexus::EnsureArrayOfSize(int)
      1    0.0%    0.0%  v8::internal::FastKeyAccumulator::Prepare()
      1    0.0%    0.0%  v8::internal::Factory::NewSharedFunctionInfo(v8::internal::Handle<v8::internal::String>, int, v8::internal::FunctionKind, v8::internal::Handle<v8::internal::Code>, v8::internal::Handle<v8::internal::ScopeInfo>)
      1    0.0%    0.0%  v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag)
      1    0.0%    0.0%  v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>)
      1    0.0%    0.0%  v8::internal::Factory::CopyCode(v8::internal::Handle<v8::internal::Code>)
      1    0.0%    0.0%  v8::internal::ExpressionClassifier<v8::internal::ParserTypes<v8::internal::Parser> >::RecordArrowFormalParametersError(v8::internal::Scanner::Location const&, v8::internal::MessageTemplate::Template, char const*)
      1    0.0%    0.0%  v8::internal::Expression::IsUndefinedLiteral() const
      1    0.0%    0.0%  v8::internal::ExitFrame::ComputeCallerState(v8::internal::StackFrame::State*) const
      1    0.0%    0.0%  v8::internal::ElementsAccessor::Concat(v8::internal::Isolate*, v8::internal::Arguments*, unsigned int, unsigned int)
      1    0.0%    0.0%  v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::GenerateNewEnumerationIndices(v8::internal::Handle<v8::internal::NameDictionary>)
      1    0.0%    0.0%  v8::internal::Dictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape, v8::internal::Handle<v8::internal::Name> >::BuildIterationIndicesArray(v8::internal::Handle<v8::internal::NameDictionary>)
      1    0.0%    0.0%  v8::internal::Deserializer::ReadData(v8::internal::Object**, v8::internal::Object**, int, unsigned char*)
      1    0.0%    0.0%  v8::internal::DescriptorArray::CopyFrom(int, v8::internal::DescriptorArray*)
      1    0.0%    0.0%  v8::internal::DeclarationScope::Analyze(v8::internal::ParseInfo*, v8::internal::AnalyzeMode)
      1    0.0%    0.0%  v8::internal::CreateObjectLiteralBoilerplate(v8::internal::Isolate*, v8::internal::Handle<v8::internal::LiteralsArray>, v8::internal::Handle<v8::internal::FixedArray>, bool)
      1    0.0%    0.0%  v8::internal::CpuFeatures::FlushICache(void*, unsigned long)
      1    0.0%    0.0%  v8::internal::Context::scope_info()
      1    0.0%    0.0%  v8::internal::Context::RemoveOptimizedFunction(v8::internal::JSFunction*)
      1    0.0%    0.0%  v8::internal::ConsStringIterator::Continue(int*)
      1    0.0%    0.0%  v8::internal::ConsString* v8::internal::String::VisitFlat<v8::internal::StringCharacterStream>(v8::internal::StringCharacterStream*, v8::internal::String*, int)
      1    0.0%    0.0%  v8::internal::CompilationInfo::shared_info() const
      1    0.0%    0.0%  v8::internal::CompilationCacheTable::Age()
      1    0.0%    0.0%  v8::internal::CodeStub::GetCode()
      1    0.0%    0.0%  v8::internal::CodeFlusher::ProcessJSFunctionCandidates()
      1    0.0%    0.0%  v8::internal::CodeFlusher::IteratePointersToFromSpace(v8::internal::ObjectVisitor*)
      1    0.0%    0.0%  v8::internal::CodeEventDispatcher::CodeCreateEvent(v8::internal::CodeEventListener::LogEventsAndTags, v8::internal::AbstractCode*, v8::internal::Name*)
      1    0.0%    0.0%  v8::internal::CodeCache::LinearLookup(v8::internal::FixedArray*, v8::internal::Name*, unsigned int)
      1    0.0%    0.0%  v8::internal::Code::GetSafepointEntry(unsigned char*)
      1    0.0%    0.0%  v8::internal::CallICNexus::StateFromFeedback() const
      1    0.0%    0.0%  v8::internal::Call::Call(v8::internal::Expression*, v8::internal::ZoneList<v8::internal::Expression*>*, int, v8::internal::Call::PossiblyEval)
      1    0.0%    0.0%  v8::internal::Builtin_Impl_ObjectKeys(v8::internal::BuiltinArguments, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_Impl_NumberPrototypeToString(v8::internal::BuiltinArguments, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::AstValueFactory::Internalize(v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::AstValueFactory::AstRawStringCompare(void*, void*)
      1    0.0%    0.0%  v8::internal::AstTyper::NarrowLowerType(v8::internal::Expression*, v8::internal::AstType*)
      1    0.0%    0.0%  v8::internal::AstNumberingVisitor::VisitNoStackOverflowCheck(v8::internal::AstNode*)
      1    0.0%    0.0%  v8::internal::AstNumberingVisitor::Renumber(v8::internal::FunctionLiteral*)
      1    0.0%    0.0%  v8::internal::AssignVectorSlots(v8::internal::Expression*, v8::internal::FeedbackVectorSpec*, v8::internal::FeedbackVectorSlot*)
      1    0.0%    0.0%  v8::internal::Assembler::j(v8::internal::Condition, v8::internal::Label*, v8::internal::Label::Distance)
      1    0.0%    0.0%  v8::internal::Assembler::immediate_arithmetic_op(unsigned char, v8::internal::Operand const&, v8::internal::Immediate, int)
      1    0.0%    0.0%  v8::internal::Assembler::emit_mov(v8::internal::Register, v8::internal::Operand const&, int)
      1    0.0%    0.0%  v8::internal::Assembler::emit(v8::internal::Immediate)
      1    0.0%    0.0%  v8::internal::AccessorPair::GetComponent(v8::internal::Handle<v8::internal::AccessorPair>, v8::internal::AccessorComponent)
      1    0.0%    0.0%  v8::internal::(anonymous namespace)::Fast_ArrayConcat(v8::internal::Isolate*, v8::internal::BuiltinArguments*)
      1    0.0%    0.0%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedSmiElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)0> >::GetImpl(v8::internal::FixedArrayBase*, unsigned int)
      1    0.0%    0.0%  v8::internal::(anonymous namespace)::CompileUnoptimizedCode(v8::internal::CompilationInfo*)
      1    0.0%    0.0%  v8::base::TemplateHashMapImpl<void*, void*, v8::base::KeyEqualityMatcher<void*>, v8::internal::ZoneAllocationPolicy>::Probe(void* const&, unsigned int) const
      1    0.0%    0.0%  v8::base::TemplateHashMapImpl<void*, void*, v8::base::KeyEqualityMatcher<void*>, v8::base::DefaultAllocationPolicy>::Probe(void* const&, unsigned int) const
      1    0.0%    0.0%  v8::base::TemplateHashMapImpl<void*, void*, v8::base::HashEqualityThenKeyMatcher<void*, bool (*)(void*, void*)>, v8::base::DefaultAllocationPolicy>::FillEmptyEntry(v8::base::TemplateHashMapEntry<void*, void*>*, void* const&, void* const&, unsigned int, v8::base::DefaultAllocationPolicy)
      1    0.0%    0.0%  v8::base::RandomNumberGenerator::Next(int)
      1    0.0%    0.0%  v8::base::OS::CommitPageSize()
      1    0.0%    0.0%  v8::Locker::IsActive()
      1    0.0%    0.0%  std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char)
      1    0.0%    0.0%  std::__1::deque<v8::internal::compiler::Instruction*, v8::internal::zone_allocator<v8::internal::compiler::Instruction*> >::push_back(v8::internal::compiler::Instruction* const&)
      1    0.0%    0.0%  std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long)
      1    0.0%    0.0%  std::__1::__tree_const_iterator<std::__1::__value_type<v8::internal::Expression*, v8::internal::AstBounds>, std::__1::__tree_node<std::__1::__value_type<v8::internal::Expression*, v8::internal::AstBounds>, void*>*, long> std::__1::__tree<std::__1::__value_type<v8::internal::Expression*, v8::internal::AstBounds>, std::__1::__map_value_compare<v8::internal::Expression*, std::__1::__value_type<v8::internal::Expression*, v8::internal::AstBounds>, std::__1::less<v8::internal::Expression*>, true>, v8::internal::zone_allocator<std::__1::__value_type<v8::internal::Expression*, v8::internal::AstBounds> > >::find<v8::internal::Expression*>(v8::internal::Expression* const&) const
      1    0.0%    0.0%  node::crypto::Sign::SignFinal(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::crypto::Hmac::HmacInit(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::TCPWrap::Connect(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::Open(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::LStat(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::InternalModuleStat(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::Close(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::Buffer::Copy(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  int v8::internal::FlexibleBodyVisitor<v8::internal::StaticScavengeVisitor<(v8::internal::PromotionMode)1>, v8::internal::FlexibleBodyDescriptor<8>, int>::VisitSpecialized<32>(v8::internal::Map*, v8::internal::HeapObject*)
      1    0.0%    0.0%  bool v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::PromoteObject<(v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::PromotionMode)1, (v8::internal::LoggingAndProfiling)0>::ObjectContents)0, (v8::internal::AllocationAlignment)0>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int)
      1    0.0%    0.0%  bool v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)0, (v8::internal::PromotionMode)0, (v8::internal::LoggingAndProfiling)0>::SemiSpaceCopyObject<(v8::internal::AllocationAlignment)0>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int)
      1    0.0%    0.0%  bool v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)0, (v8::internal::PromotionMode)0, (v8::internal::LoggingAndProfiling)0>::PromoteObject<(v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)0, (v8::internal::PromotionMode)0, (v8::internal::LoggingAndProfiling)0>::ObjectContents)1, (v8::internal::AllocationAlignment)0>(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*, int)
      1    0.0%    0.0%  bool v8::internal::JSObject::UpdateAllocationSite<(v8::internal::AllocationSiteUpdateMode)0>(v8::internal::Handle<v8::internal::JSObject>, v8::internal::ElementsKind)
      1    0.0%    0.0%  _traverse_string
      1    0.0%    0.0%  _bn_mul_mont
      1    0.0%    0.0%  _BN_ucmp

 [Summary]:
   ticks  total  nonlib   name
   4283   18.0%   19.5%  JavaScript
  16273   68.6%   74.2%  C++
   2540   10.7%   11.6%  GC
   1799    7.6%          Shared libraries
   1378    5.8%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
  11873   76.7%   50.0%  v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
   2208   14.3%    9.3%  v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
    359    2.3%    1.5%  v8::internal::Builtin_ArraySlice(int, v8::internal::Object**, v8::internal::Isolate*)
    341    2.2%    1.4%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
    156    1.0%    0.7%  v8::internal::Runtime_CompileLazy(int, v8::internal::Object**, v8::internal::Isolate*)
     57    0.4%    0.2%  v8::internal::Builtin_Impl_ArraySplice(v8::internal::BuiltinArguments, v8::internal::Isolate*)
     52    0.3%    0.2%  v8::internal::Runtime_KeyedStoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
     48    0.3%    0.2%  v8::internal::Runtime_LoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
     38    0.2%    0.2%  v8::internal::Builtin_ErrorCaptureStackTrace(int, v8::internal::Object**, v8::internal::Isolate*)
     34    0.2%    0.1%  v8::internal::Builtin_JsonParse(int, v8::internal::Object**, v8::internal::Isolate*)
     29    0.2%    0.1%  v8::internal::Runtime_StoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
     28    0.2%    0.1%  v8::internal::Runtime_CompileOptimized_Concurrent(int, v8::internal::Object**, v8::internal::Isolate*)
     27    0.2%    0.1%  v8::internal::LookupIterator::State v8::internal::LookupIterator::LookupInRegularHolder<false>(v8::internal::Map*, v8::internal::JSReceiver*)
     23    0.1%    0.1%  v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*)
     18    0.1%    0.1%  v8::internal::Runtime_StackGuard(int, v8::internal::Object**, v8::internal::Isolate*)
     17    0.1%    0.1%  v8::internal::Runtime_CreateObjectLiteral(int, v8::internal::Object**, v8::internal::Isolate*)
     15    0.1%    0.1%  v8::internal::Runtime_SetProperty(int, v8::internal::Object**, v8::internal::Isolate*)
     14    0.1%    0.1%  v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*)
     14    0.1%    0.1%  v8::internal::Builtin_ObjectDefineProperty(int, v8::internal::Object**, v8::internal::Isolate*)
     13    0.1%    0.1%  v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>)
     12    0.1%    0.1%  v8::internal::Runtime_KeyedLoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      9    0.1%    0.0%  v8::internal::Runtime_NewObject(int, v8::internal::Object**, v8::internal::Isolate*)
      6    0.0%    0.0%  v8::internal::Runtime_GenericHash(int, v8::internal::Object**, v8::internal::Isolate*)
      6    0.0%    0.0%  v8::internal::Runtime_BinaryOpIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      6    0.0%    0.0%  v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*)
      6    0.0%    0.0%  v8::internal::Builtin_DateConstructor_ConstructStub(int, v8::internal::Object**, v8::internal::Isolate*)
      4    0.0%    0.0%  v8::internal::Builtin_FunctionConstructor(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Runtime_StringSplit(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Runtime_RegExpExec(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Runtime_NewClosure_Tenured(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Runtime_Interrupt(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Builtin_ObjectKeys(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Builtin_JsonStringify(int, v8::internal::Object**, v8::internal::Isolate*)
      3    0.0%    0.0%  _uv__fs_work
      2    0.0%    0.0%  void v8::Utf8WriterVisitor::Visit<unsigned char>(unsigned char const*, int)
      2    0.0%    0.0%  v8::internal::Runtime_ToBooleanIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::Runtime_StringCharCodeAtRT(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::Runtime_StrictEqual(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::Runtime_CreateRegExpLiteral(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::ConsString* v8::internal::String::VisitFlat<v8::Utf8WriterVisitor>(v8::Utf8WriterVisitor*, v8::internal::String*, int)
      2    0.0%    0.0%  v8::internal::Builtin_RegExpConstructor(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::Builtin_ObjectGetOwnPropertySymbols(int, v8::internal::Object**, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::Builtin_ArrayConcat(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::SourcePositionTableIterator::Advance()
      1    0.0%    0.0%  v8::internal::Scanner::ScanIdentifierOrKeyword()
      1    0.0%    0.0%  v8::internal::Runtime_TryInstallOptimizedCode(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ThrowCalledNonCallable(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_StringReplaceGlobalRegExpWithString(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_StringEqual(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ResolvePossiblyDirectEval(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ObjectHasOwnProperty(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_NumberToStringSkipCache(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_NotifyDeoptimized(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_NewClosure(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_LoadGlobalIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_InstanceOf(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_ForInEnumerate(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_CompareIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Runtime_CallIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::MarkCompactCollector::RecordRelocSlot(v8::internal::Code*, v8::internal::RelocInfo*, v8::internal::Object*)
      1    0.0%    0.0%  v8::internal::LookupIterator::LookupIterator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::LookupIterator::Configuration)
      1    0.0%    0.0%  v8::internal::Heap::CreateFillerObjectAt(unsigned char*, int, v8::internal::ClearRecordedSlots, v8::internal::ClearBlackArea)
      1    0.0%    0.0%  v8::internal::Builtin_NumberPrototypeToString(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_DateNow(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ArrayBufferConstructor_ConstructStub(int, v8::internal::Object**, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::Locker::IsActive()
      1    0.0%    0.0%  int v8::internal::BinarySearch<(v8::internal::SearchMode)1, v8::internal::DescriptorArray>(v8::internal::DescriptorArray*, v8::internal::Name*, int, int*)

 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 2.0% are not shown.

   ticks parent  name
   2833   11.9%  LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
   2833  100.0%    Stub: CEntryStub {1}
   2833  100.0%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
   2833  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
   2833  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
   2833  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46

   1802    7.6%  v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>)
   1687   93.6%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
   1687  100.0%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
   1687  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
   1687  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
   1687  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46
    114    6.3%    v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
    114  100.0%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    114  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
    114  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
    114  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46

   1576    6.6%  v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>)
    908   57.6%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
    908  100.0%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    908  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
    908  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
    908  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46
    668   42.4%    v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
    668  100.0%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    668  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
    668  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
    668  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46

   1504    6.3%  /usr/lib/system/libsystem_platform.dylib

   1378    5.8%  UNKNOWN

    794    3.3%  v8::internal::Builtin_Impl_ArraySplice(v8::internal::BuiltinArguments, v8::internal::Isolate*)
    737   92.8%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
    737  100.0%      LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    737  100.0%        Stub: CEntryStub {1}
    737  100.0%          LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    737  100.0%            LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
     57    7.2%    LazyCompile: *join native array.js:289:19
     57  100.0%      v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
     57  100.0%        LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
     57  100.0%          Stub: CEntryStub {1}
     57  100.0%            LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19

    721    3.0%  v8::internal::(anonymous namespace)::EnsureJSArrayWithWritableFastElements(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments*, int)
    721  100.0%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
    721  100.0%      LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    721  100.0%        Stub: CEntryStub {1}
    721  100.0%          LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    721  100.0%            LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22

    675    2.8%  v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::Splice(v8::internal::Handle<v8::internal::JSArray>, unsigned int, unsigned int, v8::internal::Arguments*, unsigned int)
    675  100.0%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
    675  100.0%      LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    675  100.0%        Stub: CEntryStub {1}
    675  100.0%          LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    675  100.0%            LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22

    616    2.6%  v8::internal::(anonymous namespace)::CopyObjectToObjectElements(v8::internal::FixedArrayBase*, v8::internal::ElementsKind, unsigned int, v8::internal::FixedArrayBase*, v8::internal::ElementsKind, unsigned int, int)
    423   68.7%    v8::internal::Builtin_ArraySplice(int, v8::internal::Object**, v8::internal::Isolate*)
    379   89.6%      LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    379  100.0%        Stub: CEntryStub {1}
    379  100.0%          LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
    379  100.0%            LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
     44   10.4%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
     44  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
     44  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
     44  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46
    193   31.3%    v8::internal::Builtin_ArraySlice(int, v8::internal::Object**, v8::internal::Isolate*)
    193  100.0%      LazyCompile: *cycleReplacer /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:11:54
    193  100.0%        LazyCompile: *<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:16:18
    193  100.0%          Stub: CEntryStub {1}
    193  100.0%            LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19

    615    2.6%  void v8::internal::String::WriteToFlat<unsigned short>(v8::internal::String*, unsigned short*, int, int)
    614   99.8%    v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
    542   88.3%      LazyCompile: *DoJoin native array.js:97:16
    542  100.0%        LazyCompile: *Join native array.js:122:14
    542  100.0%          LazyCompile: *InnerArrayJoin native array.js:276:24
    542  100.0%            LazyCompile: *join native array.js:289:19
     72   11.7%      LazyCompile: ~stringify /Users/juanjo/dev/schoolhub/api/node_modules/json-stringify-safe/stringify.js:4:19
     72  100.0%        LazyCompile: ~send /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:285:22
     72  100.0%          LazyCompile: ~process /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:214:28
     72  100.0%            LazyCompile: ~<anonymous> /Users/juanjo/dev/schoolhub/api/node_modules/raven/lib/client.js:333:46

    475    2.0%  v8::internal::PagedSpace::Available()
moll commented 7 years ago

I can't spot from the backtrace of yours, @juanjoLenero, what's the thing doing the stringifying and why is it attempting to stringify a Sequelize object. Do you know?

einnjo commented 7 years ago

@moll There's nothing wrong with json-stringify-safe, the problem was in trying to stringify the sequelize object.

As part of our error reporting we log the user for context, but instead of logging a plain object we were logging a sequelize instance object. This object is huge and contains references to other models and the underlying database connection. That's what was consuming all the cpu.

I converted the user instance to a plain object before logging and the problem is gone. Sorry for the inconvenience.

moll commented 7 years ago

No prob. Thanks for the follow up. If you, fellows, don't mind, I'll close this issue it seems we've agreed to not do anything about this on stringify-safe's side for now. Feel free to voice an opposing opinion though. :)