Comparing version 0.3.8 to 0.4.0
1143
out.txt
@@ -1,416 +0,727 @@ | ||
Usage: | ||
shell [options] -e string | ||
execute string in V8 | ||
shell [options] file1 file2 ... filek | ||
run JavaScript scripts in file1, file2, ..., filek | ||
shell [options] | ||
shell [options] --shell [file1 file2 ... filek] | ||
run an interactive JavaScript shell | ||
d8 [options] file1 file2 ... filek | ||
d8 [options] | ||
d8 [options] --shell [file1 file2 ... filek] | ||
run the new debugging shell | ||
Options: | ||
--use_strict (enforce strict mode) | ||
type: bool default: false | ||
--es5_readonly (activate correct semantics for inheriting readonliness) | ||
type: bool default: true | ||
--es52_globals (activate new semantics for global var declarations) | ||
type: bool default: true | ||
--harmony_typeof (enable harmony semantics for typeof) | ||
type: bool default: false | ||
--harmony_scoping (enable harmony block scoping) | ||
type: bool default: false | ||
--harmony_modules (enable harmony modules (implies block scoping)) | ||
type: bool default: false | ||
--harmony_proxies (enable harmony proxies) | ||
type: bool default: false | ||
--harmony_collections (enable harmony collections (sets, maps, and weak maps)) | ||
type: bool default: false | ||
--harmony (enable all harmony features (except typeof)) | ||
type: bool default: false | ||
--packed_arrays (optimizes arrays that have no holes) | ||
type: bool default: true | ||
--smi_only_arrays (tracks arrays with only smi values) | ||
type: bool default: true | ||
--clever_optimizations (Optimize object size, Array shift, DOM strings and string +) | ||
type: bool default: true | ||
--unbox_double_arrays (automatically unbox arrays of doubles) | ||
type: bool default: true | ||
--string_slices (use string slices) | ||
type: bool default: true | ||
--crankshaft (use crankshaft) | ||
type: bool default: true | ||
--hydrogen_filter (optimization filter) | ||
type: string default: | ||
--use_range (use hydrogen range analysis) | ||
type: bool default: true | ||
--eliminate_dead_phis (eliminate dead phis) | ||
type: bool default: true | ||
--use_gvn (use hydrogen global value numbering) | ||
type: bool default: true | ||
--use_canonicalizing (use hydrogen instruction canonicalizing) | ||
type: bool default: true | ||
--use_inlining (use function inlining) | ||
type: bool default: true | ||
--max_inlined_source_size (maximum source size in bytes considered for a single inlining) | ||
type: int default: 600 | ||
--max_inlined_nodes (maximum number of AST nodes considered for a single inlining) | ||
type: int default: 196 | ||
--max_inlined_nodes_cumulative (maximum cumulative number of AST nodes considered for inlining) | ||
type: int default: 196 | ||
--loop_invariant_code_motion (loop invariant code motion) | ||
type: bool default: true | ||
--collect_megamorphic_maps_from_stub_cache (crankshaft harvests type feedback from stub cache) | ||
type: bool default: true | ||
--hydrogen_stats (print statistics for hydrogen) | ||
type: bool default: false | ||
--trace_hydrogen (trace generated hydrogen to file) | ||
type: bool default: false | ||
--trace_phase (trace generated IR for specified phases) | ||
type: string default: Z | ||
--trace_inlining (trace inlining decisions) | ||
type: bool default: false | ||
--trace_alloc (trace register allocator) | ||
type: bool default: false | ||
--trace_all_uses (trace all use positions) | ||
type: bool default: false | ||
--trace_range (trace range analysis) | ||
type: bool default: false | ||
--trace_gvn (trace global value numbering) | ||
type: bool default: false | ||
--trace_representation (trace representation types) | ||
type: bool default: false | ||
--stress_pointer_maps (pointer map for every instruction) | ||
type: bool default: false | ||
--stress_environments (environment for every instruction) | ||
type: bool default: false | ||
--deopt_every_n_times (deoptimize every n times a deopt point is passed) | ||
type: int default: 0 | ||
--trap_on_deopt (put a break point before deoptimizing) | ||
type: bool default: false | ||
--deoptimize_uncommon_cases (deoptimize uncommon cases) | ||
type: bool default: true | ||
--polymorphic_inlining (polymorphic inlining) | ||
type: bool default: true | ||
--use_osr (use on-stack replacement) | ||
type: bool default: true | ||
--array_bounds_checks_elimination (perform array bounds checks elimination) | ||
type: bool default: true | ||
--array_index_dehoisting (perform array index dehoisting) | ||
type: bool default: true | ||
--dead_code_elimination (use dead code elimination) | ||
type: bool default: true | ||
--trace_dead_code_elimination (trace dead code elimination) | ||
type: bool default: false | ||
--trace_osr (trace on-stack replacement) | ||
type: bool default: false | ||
--stress_runs (number of stress runs) | ||
type: int default: 0 | ||
--optimize_closures (optimize closures) | ||
type: bool default: true | ||
--lookup_sample_by_shared (when picking a function to optimize, watch for shared function info, not JSFunction itself) | ||
type: bool default: true | ||
--cache_optimized_code (cache optimized code for closures) | ||
type: bool default: true | ||
--inline_construct (inline constructor calls) | ||
type: bool default: true | ||
--inline_arguments (inline functions with arguments object) | ||
type: bool default: true | ||
--inline_accessors (inline JavaScript accessors) | ||
type: bool default: true | ||
--loop_weight (loop weight for representation inference) | ||
type: int default: 1 | ||
--optimize_for_in (optimize functions containing for-in loops) | ||
type: bool default: true | ||
--opt_safe_uint32_operations (allow uint32 values on optimize frames if they are used only insafe operations) | ||
type: bool default: true | ||
--parallel_recompilation (optimizing hot functions asynchronously on a separate thread) | ||
type: bool default: false | ||
--trace_parallel_recompilation (track parallel recompilation) | ||
type: bool default: false | ||
--parallel_recompilation_queue_length (the length of the parallel compilation queue) | ||
type: int default: 2 | ||
--experimental_profiler (enable all profiler experiments) | ||
type: bool default: true | ||
--watch_ic_patching (profiler considers IC stability) | ||
type: bool default: false | ||
--frame_count (number of stack frames inspected by the profiler) | ||
type: int default: 1 | ||
--self_optimization (primitive functions trigger their own optimization) | ||
type: bool default: false | ||
--direct_self_opt (call recompile stub directly when self-optimizing) | ||
type: bool default: false | ||
--retry_self_opt (re-try self-optimization if it failed) | ||
type: bool default: false | ||
--count_based_interrupts (trigger profiler ticks based on counting instead of timing) | ||
type: bool default: false | ||
--interrupt_at_exit (insert an interrupt check at function exit) | ||
type: bool default: false | ||
--weighted_back_edges (weight back edges by jump distance for interrupt triggering) | ||
type: bool default: false | ||
--interrupt_budget (execution budget before interrupt is triggered) | ||
type: int default: 5888 | ||
--type_info_threshold (percentage of ICs that must have type info to allow optimization) | ||
type: int default: 15 | ||
--self_opt_count (call count before self-optimization) | ||
type: int default: 130 | ||
--trace_opt_verbose (extra verbose compilation tracing) | ||
type: bool default: false | ||
--debug_code (generate extra code (assertions) for debugging) | ||
type: bool default: false | ||
--code_comments (emit comments in code disassembly) | ||
type: bool default: false | ||
--enable_sse2 (enable use of SSE2 instructions if available) | ||
type: bool default: true | ||
--enable_sse3 (enable use of SSE3 instructions if available) | ||
type: bool default: true | ||
--enable_sse4_1 (enable use of SSE4.1 instructions if available) | ||
type: bool default: true | ||
--enable_cmov (enable use of CMOV instruction if available) | ||
type: bool default: true | ||
--enable_rdtsc (enable use of RDTSC instruction if available) | ||
type: bool default: true | ||
--enable_sahf (enable use of SAHF instruction if available (X64 only)) | ||
type: bool default: true | ||
--enable_vfp3 (enable use of VFP3 instructions if available - this implies enabling ARMv7 and VFP2 instructions (ARM only)) | ||
type: bool default: true | ||
--enable_vfp2 (enable use of VFP2 instructions if available) | ||
type: bool default: true | ||
--enable_armv7 (enable use of ARMv7 instructions if available (ARM only)) | ||
type: bool default: true | ||
--enable_sudiv (enable use of SDIV and UDIV instructions if available (ARM only)) | ||
type: bool default: true | ||
--enable_movw_movt (enable loading 32-bit constant by means of movw/movt instruction pairs (ARM only)) | ||
type: bool default: false | ||
--enable_unaligned_accesses (enable unaligned accesses for ARMv7 (ARM only)) | ||
type: bool default: true | ||
--enable_fpu (enable use of MIPS FPU instructions if available (MIPS only)) | ||
type: bool default: true | ||
--expose_natives_as (expose natives in global object) | ||
type: string default: NULL | ||
--expose_debug_as (expose debug in global object) | ||
type: string default: NULL | ||
--expose_gc (expose gc extension) | ||
type: bool default: false | ||
--expose_externalize_string (expose externalize string extension) | ||
type: bool default: false | ||
--stack_trace_limit (number of stack frames to capture) | ||
type: int default: 10 | ||
--builtins_in_stack_traces (show built-in functions in stack traces) | ||
type: bool default: false | ||
--disable_native_files (disable builtin natives files) | ||
type: bool default: false | ||
--inline_new (use fast inline allocation) | ||
type: bool default: true | ||
--stack_trace_on_abort (print a stack trace if an assertion failure occurs) | ||
type: bool default: true | ||
--trace (trace function calls) | ||
type: bool default: false | ||
--mask_constants_with_cookie (use random jit cookie to mask large constants) | ||
type: bool default: true | ||
--lazy (use lazy compilation) | ||
type: bool default: true | ||
--trace_opt (trace lazy optimization) | ||
type: bool default: false | ||
--trace_opt_stats (trace lazy optimization statistics) | ||
type: bool default: false | ||
--opt (use adaptive optimizations) | ||
type: bool default: true | ||
--always_opt (always try to optimize functions) | ||
type: bool default: false | ||
--prepare_always_opt (prepare for turning on always opt) | ||
type: bool default: false | ||
--trace_deopt (trace deoptimization) | ||
type: bool default: false | ||
--min_preparse_length (minimum length for automatic enable preparsing) | ||
type: int default: 1024 | ||
--always_full_compiler (try to use the dedicated run-once backend for all code) | ||
type: bool default: false | ||
--max_opt_count (maximum number of optimization attempts before giving up.) | ||
type: int default: 10 | ||
--compilation_cache (enable compilation cache) | ||
type: bool default: true | ||
--cache_prototype_transitions (cache prototype transitions) | ||
type: bool default: true | ||
--trace_debug_json (trace debugging JSON request/response) | ||
type: bool default: false | ||
--debugger_auto_break (automatically set the debug break flag when debugger commands are in the queue) | ||
type: bool default: true | ||
--enable_liveedit (enable liveedit experimental feature) | ||
type: bool default: true | ||
--break_on_abort (always cause a debug break before aborting) | ||
type: bool default: true | ||
--stack_size (default size of stack region v8 is allowed to use (in kBytes)) | ||
type: int default: 984 | ||
--max_stack_trace_source_length (maximum length of function source code printed in a stack trace.) | ||
type: int default: 300 | ||
--always_inline_smi_code (always inline smi code in non-opt code) | ||
type: bool default: false | ||
--max_new_space_size (max size of the new generation (in kBytes)) | ||
type: int default: 0 | ||
--max_old_space_size (max size of the old generation (in Mbytes)) | ||
type: int default: 0 | ||
--max_executable_size (max size of executable memory (in Mbytes)) | ||
type: int default: 0 | ||
--gc_global (always perform global GCs) | ||
type: bool default: false | ||
--gc_interval (garbage collect after <n> allocations) | ||
type: int default: -1 | ||
--trace_gc (print one trace line following each garbage collection) | ||
type: bool default: false | ||
--trace_gc_nvp (print one detailed trace line in name=value format after each garbage collection) | ||
type: bool default: false | ||
--trace_gc_ignore_scavenger (do not print trace line after scavenger collection) | ||
type: bool default: false | ||
--print_cumulative_gc_stat (print cumulative GC statistics in name=value format on exit) | ||
type: bool default: false | ||
--trace_gc_verbose (print more details following each garbage collection) | ||
type: bool default: false | ||
--trace_fragmentation (report fragmentation for old pointer and data pages) | ||
type: bool default: false | ||
--trace_external_memory (print amount of external allocated memory after each time it is adjusted.) | ||
type: bool default: false | ||
--collect_maps (garbage collect maps from which no objects can be reached) | ||
type: bool default: true | ||
--flush_code (flush code that we expect not to use again before full gc) | ||
type: bool default: true | ||
--incremental_marking (use incremental marking) | ||
type: bool default: true | ||
--incremental_marking_steps (do incremental marking steps) | ||
type: bool default: true | ||
--trace_incremental_marking (trace progress of the incremental marking) | ||
type: bool default: false | ||
--track_gc_object_stats (track object counts and memory usage) | ||
type: bool default: false | ||
--use_idle_notification (Use idle notification to reduce memory footprint.) | ||
type: bool default: true | ||
--use_ic (use inline caching) | ||
type: bool default: true | ||
--native_code_counters (generate extra code for manipulating stats counters) | ||
type: bool default: false | ||
--always_compact (Perform compaction on every full GC) | ||
type: bool default: false | ||
--lazy_sweeping (Use lazy sweeping for old pointer and data spaces) | ||
type: bool default: true | ||
--never_compact (Never perform compaction on full GC - testing only) | ||
type: bool default: false | ||
--compact_code_space (Compact code space on full non-incremental collections) | ||
type: bool default: true | ||
--incremental_code_compaction (Compact code space on full incremental collections) | ||
type: bool default: true | ||
--cleanup_code_caches_at_gc (Flush inline caches prior to mark compact collection and flush code caches in maps during mark compact cycle.) | ||
type: bool default: true | ||
--random_seed (Default seed for initializing random generator (0, the default, means to use system random).) | ||
type: int default: 0 | ||
--use_verbose_printer (allows verbose printing) | ||
type: bool default: true | ||
--allow_natives_syntax (allow natives syntax) | ||
type: bool default: false | ||
--trace_parse (trace parsing and preparsing) | ||
type: bool default: false | ||
--trace_sim (Trace simulator execution) | ||
type: bool default: false | ||
--check_icache (Check icache flushes in ARM and MIPS simulator) | ||
type: bool default: false | ||
--stop_sim_at (Simulator stop after x number of instructions) | ||
type: int default: 0 | ||
--sim_stack_alignment (Stack alingment in bytes in simulator (4 or 8, 8 is default)) | ||
type: int default: 8 | ||
--abort_on_uncaught_exception (abort program (dump core) when an uncaught exception is thrown) | ||
type: bool default: false | ||
--trace_exception (print stack trace when throwing exceptions) | ||
type: bool default: false | ||
--preallocate_message_memory (preallocate some memory to build stack traces.) | ||
type: bool default: false | ||
--randomize_hashes (randomize hashes to avoid predictable hash collisions (with snapshots this option cannot override the baked-in seed)) | ||
type: bool default: true | ||
--hash_seed (Fixed seed to use to hash property keys (0 means random)(with snapshots this option cannot override the baked-in seed)) | ||
type: int default: 0 | ||
--preemption (activate a 100ms timer that switches between V8 threads) | ||
type: bool default: false | ||
--regexp_optimization (generate optimized regexp code) | ||
type: bool default: true | ||
--testing_bool_flag (testing_bool_flag) | ||
type: bool default: true | ||
--testing_int_flag (testing_int_flag) | ||
type: int default: 13 | ||
--testing_float_flag (float-flag) | ||
type: float default: 2.500000 | ||
--testing_string_flag (string-flag) | ||
type: string default: Hello, world! | ||
--testing_prng_seed (Seed used for threading test randomness) | ||
type: int default: 42 | ||
--testing_serialization_file (file in which to testing_serialize heap) | ||
type: string default: C:\Windows\Temp\serdes | ||
--extra_code (A filename with extra code to be included in the snapshot (mksnapshot only)) | ||
type: string default: NULL | ||
--help (Print usage message, including flags, on console) | ||
type: bool default: true | ||
--dump_counters (Dump counters on exit) | ||
type: bool default: false | ||
--debugger (Enable JavaScript debugger) | ||
type: bool default: false | ||
--remote_debugger (Connect JavaScript debugger to the debugger agent in another process) | ||
type: bool default: false | ||
--debugger_agent (Enable debugger agent) | ||
type: bool default: false | ||
--debugger_port (Port to use for remote debugging) | ||
type: int default: 5858 | ||
--map_counters (Map counters to a file) | ||
type: string default: | ||
--js_arguments (Pass all remaining arguments to the script. Alias for "--".) | ||
type: arguments default: | ||
--debug_compile_events (Enable debugger compile events) | ||
type: bool default: true | ||
--debug_script_collected_events (Enable debugger script collected events) | ||
type: bool default: true | ||
--gdbjit (enable GDBJIT interface (disables compacting GC)) | ||
type: bool default: false | ||
--gdbjit_full (enable GDBJIT interface for all code objects) | ||
type: bool default: false | ||
--gdbjit_dump (dump elf objects with debug info to disk) | ||
type: bool default: false | ||
--gdbjit_dump_filter (dump only objects containing this substring) | ||
type: string default: | ||
--force_marking_deque_overflows (force overflows of marking deque by reducing it's size to 64 words) | ||
type: bool default: false | ||
--stress_compaction (stress the GC compactor to flush out bugs (implies --force_marking_deque_overflows)) | ||
type: bool default: false | ||
--log (Minimal logging (no API, code, GC, suspect, or handles samples).) | ||
type: bool default: false | ||
--log_all (Log all events to the log file.) | ||
type: bool default: false | ||
--log_runtime (Activate runtime system %Log call.) | ||
type: bool default: false | ||
--log_api (Log API events to the log file.) | ||
type: bool default: false | ||
--log_code (Log code events to the log file without profiling.) | ||
type: bool default: false | ||
--log_gc (Log heap samples on garbage collection for the hp2ps tool.) | ||
type: bool default: false | ||
--log_handles (Log global handle events.) | ||
type: bool default: false | ||
--log_snapshot_positions (log positions of (de)serialized objects in the snapshot.) | ||
type: bool default: false | ||
--log_suspect (Log suspect operations.) | ||
type: bool default: false | ||
--prof (Log statistical profiling information (implies --log-code).) | ||
type: bool default: false | ||
--prof_auto (Used with --prof, starts profiling automatically) | ||
type: bool default: true | ||
--prof_lazy (Used with --prof, only does sampling and logging when profiler is active (implies --noprof_auto).) | ||
type: bool default: false | ||
--prof_browser_mode (Used with --prof, turns on browser-compatible mode for profiling.) | ||
type: bool default: true | ||
--log_regexp (Log regular expression execution.) | ||
type: bool default: false | ||
--sliding_state_window (Update sliding state window counters.) | ||
type: bool default: false | ||
--logfile (Specify the name of the log file.) | ||
type: string default: v8.log | ||
--ll_prof (Enable low-level linux profiler.) | ||
type: bool default: false | ||
--gc_fake_mmap (Specify the name of the file for fake gc mmap used in ll_prof) | ||
type: string default: /tmp/__v8_gc__ | ||
[deoptimize context: 9aa414b1] | ||
[marking f 0xf2fcdc38 for recompilation, reason: hot and stable, ICs with typeinfo: 0/0 (100%)] | ||
[marking DoRegExpExec 0x9aa54a70 for recompilation, reason: hot and stable, ICs with typeinfo: 2/2 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method DoRegExpExec using hydrogen | ||
[optimizing: DoRegExpExec / 9aa54a71 - took 2.000, 0.000, 0.000 ms] | ||
[marking f 0xf2fe3f68 for recompilation, reason: hot and stable, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method f using hydrogen | ||
[optimizing: f / f2fe3f69 - took 1.000, 0.000, 0.000 ms] | ||
[marking UseSparseVariant 0x9aa4c508 for recompilation, reason: small function, ICs with typeinfo: 0/3 (0%)] | ||
----------------------------------------------------------- | ||
Compiling method UseSparseVariant using hydrogen | ||
[optimizing: UseSparseVariant / 9aa4c509 - took 1.000, 0.000, 0.000 ms] | ||
[marking NativeModule.getCached 0x9aa605b8 for recompilation, reason: small function, ICs with typeinfo: 2/2 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method NativeModule.getCached using hydrogen | ||
[optimizing: NativeModule.getCached / 9aa605b9 - took 0.000, 0.000, 0.000 ms] | ||
[marking setTime 0x9aa486b8 for recompilation, reason: small function, ICs with typeinfo: 1/3 (33%)] | ||
[marking CreateDate 0x9aa54608 for recompilation, reason: small function, ICs with typeinfo: 2/2 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method CreateDate using hydrogen | ||
[optimizing: CreateDate / 9aa54609 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method setTime using hydrogen | ||
[optimizing: setTime / 9aa486b9 - took 0.000, 0.000, 0.000 ms] | ||
[marking SubString 0x9aa52858 for recompilation, reason: small function, ICs with typeinfo: 1/2 (50%)] | ||
[marking ToObject 0x9aa4a790 for recompilation, reason: small function, ICs with typeinfo: 0/4 (0%)] | ||
----------------------------------------------------------- | ||
Compiling method SubString using hydrogen | ||
[optimizing: SubString / 9aa52859 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method ToObject using hydrogen | ||
[disabled optimization for ToObject, reason: call to a JavaScript runtime function] | ||
[marking ToUint32 0x9aa49148 for recompilation, reason: small function, ICs with typeinfo: 0/2 (0%)] | ||
----------------------------------------------------------- | ||
Compiling method ToUint32 using hydrogen | ||
[optimizing: ToUint32 / 9aa49149 - took 0.000, 0.000, 0.000 ms] | ||
[marking exec 0x9aa48648 for recompilation, reason: hot and stable, ICs with typeinfo: 9/16 (56%)] | ||
----------------------------------------------------------- | ||
Compiling method exec using hydrogen | ||
[optimizing: exec / 9aa48649 - took 1.000, 0.000, 0.000 ms] | ||
[marking StringSplitOnRegExp 0x9aa48c10 for recompilation, reason: hot and stable, ICs with typeinfo: 13/35 (37%)] | ||
----------------------------------------------------------- | ||
Compiling method StringSplitOnRegExp using hydrogen | ||
[optimizing: StringSplitOnRegExp / 9aa48c11 - took 1.000, 1.000, 0.000 ms] | ||
[marking nullCheck 0xd1930060 for recompilation, reason: small function, ICs with typeinfo: 2/6 (33%)] | ||
----------------------------------------------------------- | ||
Compiling method nullCheck using hydrogen | ||
[optimizing: nullCheck / d1930061 - took 1.000, 0.000, 0.000 ms] | ||
[marking join 0x9aa488b8 for recompilation, reason: hot and stable, ICs with typeinfo: 4/6 (66%)] | ||
----------------------------------------------------------- | ||
Compiling method join using hydrogen | ||
[disabled optimization for join, reason: inlined runtime function: FastAsciiArrayJoin] | ||
[marking BuildResultFromMatchInfo 0x9aa54698 for recompilation, reason: hot and stable, ICs with typeinfo: 14/19 (73%)] | ||
----------------------------------------------------------- | ||
Compiling method BuildResultFromMatchInfo using hydrogen | ||
[optimizing: BuildResultFromMatchInfo / 9aa54699 - took 1.000, 0.000, 0.000 ms] | ||
[marking splitPath 0xd19300f0 for recompilation, reason: small function, ICs with typeinfo: 9/9 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method splitPath using hydrogen | ||
[optimizing: splitPath / d19300f1 - took 1.000, 0.000, 0.000 ms] | ||
[marking Module._debug 0x9aa71ca8 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
[marking NativeModule.require 0x9aa60570 for recompilation, reason: small function, ICs with typeinfo: 9/12 (75%)] | ||
----------------------------------------------------------- | ||
Compiling method NativeModule.require using hydrogen | ||
[optimizing: NativeModule.require / 9aa60571 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method Module._debug using hydrogen | ||
[optimizing: Module._debug / 9aa71ca9 - took 1.000, 0.000, 0.000 ms] | ||
[marking split 0x9aa4b358 for recompilation, reason: hot and stable, ICs with typeinfo: 2/10 (20%)] | ||
----------------------------------------------------------- | ||
Compiling method split using hydrogen | ||
[optimizing: split / 9aa4b359 - took 1.000, 0.000, 0.000 ms] | ||
[marking exports.dirname 0x9aa6fd90 for recompilation, reason: small function, ICs with typeinfo: 6/6 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method exports.dirname using hydrogen | ||
[optimizing: exports.dirname / 9aa6fd91 - took 1.000, 0.000, 0.000 ms] | ||
[marking $Array.set_ 0x9aa4cf58 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method $Array.set_ using hydrogen | ||
[optimizing: $Array.set_ / 9aa4cf59 - took 1.000, 0.000, 0.000 ms] | ||
[marking keys 0x9aa41960 for recompilation, reason: small function, ICs with typeinfo: 0/4 (0%)] | ||
[marking BasicJSONSerialize 0x9aa55170 for recompilation, reason: hot and stable, ICs with typeinfo: 4/22 (18%)] | ||
----------------------------------------------------------- | ||
Compiling method keys using hydrogen | ||
[optimizing: keys / 9aa41961 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method BasicJSONSerialize using hydrogen | ||
[optimizing: BasicJSONSerialize / 9aa55171 - took 1.000, 1.000, 0.000 ms] | ||
[marking $Array.enumerable_ 0x9aa4ce38 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method $Array.enumerable_ using hydrogen | ||
[optimizing: $Array.enumerable_ / 9aa4ce39 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: NativeModule.require at bailout #10, address 0x0, frame size 120 | ||
;;; Deferred code @140: allocate-object. | ||
[deoptimizing: begin 0x9aa60571 NativeModule.require @10] | ||
translating NativeModule.require => node=63, height=16 | ||
0x0025ee40: [top + 56] <- 0xd195f309 ; [sp + 160] 00000000D195F309 <JS Function NativeModule> | ||
0x0025ee38: [top + 48] <- 0xf8f16271 ; [sp + 152] 00000000F8F16271 <String[6]: domain> | ||
0x0025ee30: [top + 40] <- 0x0284d051 ; caller's pc | ||
0x0025ee28: [top + 32] <- 0x0025ee80 ; caller's fp | ||
0x0025ee20: [top + 24] <- 0xd1956f21; context | ||
0x0025ee18: [top + 16] <- 0x9aa60571; function | ||
0x0025ee10: [top + 8] <- 0x9aa04121 ; rax 000000009AA04121 <undefined> | ||
0x0025ee08: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
translating NativeModule.exists => node=2, height=0 | ||
0x0025ee00: [top + 40] <- 0xd195f309 ; rdx 00000000D195F309 <JS Function NativeModule> | ||
0x0025edf8: [top + 32] <- 0xf8f16271 ; [sp + 152] 00000000F8F16271 <String[6]: domain> | ||
0x0025edf0: [top + 24] <- 0x0282d72b ; caller's pc | ||
0x0025ede8: [top + 16] <- 0x0025ee28 ; caller's fp | ||
0x0025ede0: [top + 8] <- 0xd1956f21; context | ||
0x0025edd8: [top + 0] <- 0x9aa60601; function | ||
[deoptimizing: end 0x9aa60601 NativeModule.exists => node=2, pc=0x0282d9a6, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: NativeModule.require] | ||
----------------------------------------------------------- | ||
Compiling method P using hydrogen | ||
[optimizing: P / f2f9a441 - took 1.000, 1.000, 0.000 ms] | ||
[marking bind 0xf2fdebe8 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method bind using hydrogen | ||
[optimizing: bind / f2fdebe9 - took 1.000, 0.000, 0.000 ms] | ||
[marking Assertion 0xf2fdeb80 for recompilation, reason: hot and stable, ICs with typeinfo: 29/32 (90%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion using hydrogen | ||
[optimizing: Assertion / f2fdeb81 - took 1.000, 1.000, 0.000 ms] | ||
**** DEOPT: Assertion at bailout #60, address 0x0, frame size 224 | ||
;;; Deferred code @314: stack-check. | ||
[deoptimizing: begin 0xf2fdeb81 Assertion @60] | ||
translating Assertion => node=324, height=56 | ||
0x0025f1e0: [top + 112] <- 0xf2ef1269 ; [sp + 280] 00000000F2EF1269 <an Assertion> | ||
0x0025f1d8: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025f1d0: [top + 96] <- 0xf0388891 ; [sp + 264] 00000000F0388891 <String[2]: be> | ||
0x0025f1c8: [top + 88] <- 0xf2ee41f9 ; [sp + 256] 00000000F2EE41F9 <an Assertion> | ||
0x0025f1c0: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025f1b8: [top + 72] <- 0x0025f210 ; caller's fp | ||
0x0025f1b0: [top + 64] <- 0xf2ef12a1; context | ||
0x0025f1a8: [top + 56] <- 0xf2fdeb81; function | ||
0x0025f1a0: [top + 48] <- 0 ; [sp + 112] (smi) | ||
0x0025f198: [top + 40] <- 0xf2fdf859 ; [sp + 152] 00000000F2FDF859 <JS Array[1]> | ||
0x0025f190: [top + 32] <- 0x100000000 ; [sp + 144] 1 | ||
0x0025f188: [top + 24] <- 0xf038d291 ; [sp + 104] 00000000F038D291 <String[2]: an> | ||
0x0025f180: [top + 16] <- 0xf2ef1321 ; [sp + 88] 00000000F2EF1321 <an Assertion> | ||
0x0025f178: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f170: [top + 0] <- 0xf2fdf8a9 ; [sp + 64] 00000000F2FDF8A9 <an Object> | ||
[deoptimizing: end 0xf2fdeb81 Assertion => node=324, pc=0x028d2da8, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: Assertion] | ||
----------------------------------------------------------- | ||
Compiling method HandleSettled using hydrogen | ||
[optimizing: HandleSettled / f3f398e1 - took 1.000, 0.000, 0.000 ms] | ||
[marking Assertion 0xf3f0a218 for recompilation, reason: hot and stable, ICs with typeinfo: 29/32 (90%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion using hydrogen | ||
[optimizing: Assertion / f3f0a219 - took 1.000, 1.000, 0.000 ms] | ||
**** DEOPT: Assertion at bailout #60, address 0x0, frame size 224 | ||
;;; Deferred code @308: stack-check. | ||
[deoptimizing: begin 0xf3f0a219 Assertion @60] | ||
translating Assertion => node=324, height=56 | ||
0x0025ee38: [top + 112] <- 0xf3e547d1 ; [sp + 280] 00000000F3E547D1 <an Assertion> | ||
0x0025ee30: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025ee28: [top + 96] <- 0xf0388891 ; [sp + 264] 00000000F0388891 <String[2]: be> | ||
0x0025ee20: [top + 88] <- 0xf3e53a49 ; [sp + 256] 00000000F3E53A49 <an Assertion> | ||
0x0025ee18: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025ee10: [top + 72] <- 0x0025ee68 ; caller's fp | ||
0x0025ee08: [top + 64] <- 0xf3e54809; context | ||
0x0025ee00: [top + 56] <- 0xf3f0a219; function | ||
0x0025edf8: [top + 48] <- 0 ; [sp + 128] (smi) | ||
0x0025edf0: [top + 40] <- 0x96e0ec09 ; [sp + 152] 0000000096E0EC09 <JS Array[1]> | ||
0x0025ede8: [top + 32] <- 0x100000000 ; [sp + 144] 1 | ||
0x0025ede0: [top + 24] <- 0xf038d291 ; [sp + 120] 00000000F038D291 <String[2]: an> | ||
0x0025edd8: [top + 16] <- 0xf3e54979 ; [sp + 96] 00000000F3E54979 <an Assertion> | ||
0x0025edd0: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025edc8: [top + 0] <- 0xf3f399c1 ; [sp + 72] 00000000F3F399C1 <an Object> | ||
[deoptimizing: end 0xf3f0a219 Assertion => node=324, pc=0x028d2da8, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[forced deoptimization: Assertion / f3f0a219] | ||
**** DEOPT: Assertion at bailout #48, address 0x28dd13c, frame size 224 | ||
[deoptimizing (lazy): begin 0xf3f0a219 Assertion @48] | ||
translating Assertion => node=258, height=56 | ||
0x0025efb0: [top + 112] <- 0xf3e53a49 ; [sp + 280] 00000000F3E53A49 <an Assertion> | ||
0x0025efa8: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025efa0: [top + 96] <- 0xf0389669 ; [sp + 264] 00000000F0389669 <String[3]: not> | ||
0x0025ef98: [top + 88] <- 0xf3e50b19 ; [sp + 256] 00000000F3E50B19 <an Assertion> | ||
0x0025ef90: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025ef88: [top + 72] <- 0x0025efe0 ; caller's fp | ||
0x0025ef80: [top + 64] <- 0xf3e54721; context | ||
0x0025ef78: [top + 56] <- 0xf3f0a219; function | ||
0x0025ef70: [top + 48] <- 1 ; [sp + 128] (smi) | ||
0x0025ef68: [top + 40] <- 0x96e0eb89 ; [sp + 152] 0000000096E0EB89 <JS Array[5]> | ||
0x0025ef60: [top + 32] <- 0x500000000 ; [sp + 144] 5 | ||
0x0025ef58: [top + 24] <- 0xf0388891 ; [sp + 120] 00000000F0388891 <String[2]: be> | ||
0x0025ef50: [top + 16] <- 000000009AA04121 <undefined> ; literal | ||
0x0025ef48: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025ef40: [top + 0] <- 0xf3e547d1 ; rbx 00000000F3E547D1 <an Assertion> | ||
[deoptimizing: end 0xf3f0a219 Assertion => node=258, pc=0x028d2ca3, state=TOS_REG, alignment=no padding, took 1.000 ms] | ||
[marking Assertion 0x96e76ae8 for recompilation, reason: hot and stable, ICs with typeinfo: 29/32 (90%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion using hydrogen | ||
[optimizing: Assertion / 96e76ae9 - took 1.000, 1.000, 0.000 ms] | ||
**** DEOPT: Assertion at bailout #60, address 0x0, frame size 224 | ||
;;; Deferred code @308: stack-check. | ||
[deoptimizing: begin 0x96e76ae9 Assertion @60] | ||
translating Assertion => node=324, height=56 | ||
0x0025f068: [top + 112] <- 0xf2fb3791 ; [sp + 280] 00000000F2FB3791 <an Assertion> | ||
0x0025f060: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025f058: [top + 96] <- 0xf0388891 ; [sp + 264] 00000000F0388891 <String[2]: be> | ||
0x0025f050: [top + 88] <- 0xf2fb36d9 ; [sp + 256] 00000000F2FB36D9 <an Assertion> | ||
0x0025f048: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025f040: [top + 72] <- 0x0025f098 ; caller's fp | ||
0x0025f038: [top + 64] <- 0xf2fb37c9; context | ||
0x0025f030: [top + 56] <- 0x96e76ae9; function | ||
0x0025f028: [top + 48] <- 0 ; [sp + 128] (smi) | ||
0x0025f020: [top + 40] <- 0x96e0ec09 ; [sp + 152] 0000000096E0EC09 <JS Array[1]> | ||
0x0025f018: [top + 32] <- 0x100000000 ; [sp + 144] 1 | ||
0x0025f010: [top + 24] <- 0xf038d291 ; [sp + 120] 00000000F038D291 <String[2]: an> | ||
0x0025f008: [top + 16] <- 0xf2fb3849 ; [sp + 96] 00000000F2FB3849 <an Assertion> | ||
0x0025f000: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025eff8: [top + 0] <- 0x96e76ad1 ; [sp + 72] 0000000096E76AD1 <an Object> | ||
[deoptimizing: end 0x96e76ae9 Assertion => node=324, pc=0x028d2da8, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[forced deoptimization: Assertion / 96e76ae9] | ||
**** DEOPT: Assertion at bailout #48, address 0x28dea93, frame size 224 | ||
[deoptimizing (lazy): begin 0x96e76ae9 Assertion @48] | ||
translating Assertion => node=258, height=56 | ||
0x0025f1e0: [top + 112] <- 0xf2fb36d9 ; [sp + 280] 00000000F2FB36D9 <an Assertion> | ||
0x0025f1d8: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025f1d0: [top + 96] <- 0xf8f20161 ; [sp + 264] 00000000F8F20161 <String[2]: to> | ||
0x0025f1c8: [top + 88] <- 0xf2fac9c9 ; [sp + 256] 00000000F2FAC9C9 <an Assertion> | ||
0x0025f1c0: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025f1b8: [top + 72] <- 0x0025f210 ; caller's fp | ||
0x0025f1b0: [top + 64] <- 0xf2fb3711; context | ||
0x0025f1a8: [top + 56] <- 0x96e76ae9; function | ||
0x0025f1a0: [top + 48] <- 0 ; [sp + 128] (smi) | ||
0x0025f198: [top + 40] <- 0x96e0eba9 ; [sp + 152] 0000000096E0EBA9 <JS Array[5]> | ||
0x0025f190: [top + 32] <- 0x500000000 ; [sp + 144] 5 | ||
0x0025f188: [top + 24] <- 0xf0388891 ; [sp + 120] 00000000F0388891 <String[2]: be> | ||
0x0025f180: [top + 16] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f178: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f170: [top + 0] <- 0xf2fb3791 ; rbx 00000000F2FB3791 <an Assertion> | ||
[deoptimizing: end 0x96e76ae9 Assertion => node=258, pc=0x028d2ca3, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[marking Assertion 0x96e76ae8 for recompilation, reason: hot and stable, ICs with typeinfo: 29/32 (90%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion using hydrogen | ||
[optimizing: Assertion / 96e76ae9 - took 0.000, 1.000, 0.000 ms] | ||
**** DEOPT: Assertion at bailout #60, address 0x0, frame size 224 | ||
;;; Deferred code @308: stack-check. | ||
[deoptimizing: begin 0x96e76ae9 Assertion @60] | ||
translating Assertion => node=324, height=56 | ||
0x0025efb0: [top + 112] <- 0xf2e94a81 ; [sp + 280] 00000000F2E94A81 <an Assertion> | ||
0x0025efa8: [top + 104] <- 0xf0388b59 ; [sp + 272] 00000000F0388B59 <String[7]: Promise> | ||
0x0025efa0: [top + 96] <- 0xf0388891 ; [sp + 264] 00000000F0388891 <String[2]: be> | ||
0x0025ef98: [top + 88] <- 0xf2e90cb9 ; [sp + 256] 00000000F2E90CB9 <an Assertion> | ||
0x0025ef90: [top + 80] <- 0x0281580e ; caller's pc | ||
0x0025ef88: [top + 72] <- 0x0025efe0 ; caller's fp | ||
0x0025ef80: [top + 64] <- 0xf2e94ab9; context | ||
0x0025ef78: [top + 56] <- 0x96e76ae9; function | ||
0x0025ef70: [top + 48] <- 0 ; [sp + 128] (smi) | ||
0x0025ef68: [top + 40] <- 0x96e0ec09 ; [sp + 152] 0000000096E0EC09 <JS Array[1]> | ||
0x0025ef60: [top + 32] <- 0x100000000 ; [sp + 144] 1 | ||
0x0025ef58: [top + 24] <- 0xf038d291 ; [sp + 120] 00000000F038D291 <String[2]: an> | ||
0x0025ef50: [top + 16] <- 0xf2e94b39 ; [sp + 96] 00000000F2E94B39 <an Assertion> | ||
0x0025ef48: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025ef40: [top + 0] <- 0x96e76ad1 ; [sp + 72] 0000000096E76AD1 <an Object> | ||
[deoptimizing: end 0x96e76ae9 Assertion => node=324, pc=0x028d2da8, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: Assertion] | ||
[marking Assertion 0x96e76ae8 for recompilation, reason: hot and stable, ICs with typeinfo: 29/32 (90%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion using hydrogen | ||
[disabled optimization for Assertion, reason: ForInStatement is not fast case] | ||
----------------------------------------------------------- | ||
Compiling method Resolve using hydrogen | ||
[optimizing: Resolve / 96e8a6c9 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method Fulfill using hydrogen | ||
[optimizing: Fulfill / 96e8a711 - took 0.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method ResolveWithObject using hydrogen | ||
[optimizing: ResolveWithObject / 96e8a759 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method Reject using hydrogen | ||
[optimizing: Reject / 96ecb591 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: Reject at bailout #10, address 0x0, frame size 8 | ||
;;; @133: gap. | ||
[deoptimizing: begin 0x96ecb591 Reject @10] | ||
translating Reject => node=78, height=0 | ||
0x0025f1e8: [top + 48] <- 0x9aa04121 ; [sp + 56] 000000009AA04121 <undefined> | ||
0x0025f1e0: [top + 40] <- 0xf3e7c7b1 ; rdx 00000000F3E7C7B1 <a Promise> | ||
0x0025f1d8: [top + 32] <- 0xf8f09a09 ; [sp + 40] 00000000F8F09A09 <String[0]: > | ||
0x0025f1d0: [top + 24] <- 0x028e4e26 ; caller's pc | ||
0x0025f1c8: [top + 16] <- 0x0025f208 ; caller's fp | ||
0x0025f1c0: [top + 8] <- 0x96e80d01; context | ||
0x0025f1b8: [top + 0] <- 0x96ecb591; function | ||
[deoptimizing: end 0x96ecb591 Reject => node=78, pc=0x028b35f3, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: Reject] | ||
----------------------------------------------------------- | ||
Compiling method Promise using hydrogen | ||
[optimizing: Promise / 96e70a19 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TaskNode using hydrogen | ||
[optimizing: TaskNode / 96e80929 - took 0.000, 0.000, 0.000 ms] | ||
**** DEOPT: HandleSettled at bailout #3, address 0x0, frame size 8 | ||
;;; @21: branch. | ||
[deoptimizing: begin 0x96e77201 HandleSettled @3] | ||
translating HandleSettled => node=3, height=0 | ||
0x0025f570: [top + 40] <- 0x9aa04121 ; [sp + 48] 000000009AA04121 <undefined> | ||
0x0025f568: [top + 32] <- 0xf2f7c6d9 ; rbx 00000000F2F7C6D9 <a Promise> | ||
0x0025f560: [top + 24] <- 0x028e4398 ; caller's pc | ||
0x0025f558: [top + 16] <- 0x0025f590 ; caller's fp | ||
0x0025f550: [top + 8] <- 0x96e80d01; context | ||
0x0025f548: [top + 0] <- 0x96e77201; function | ||
[deoptimizing: end 0x96e77201 HandleSettled => node=3, pc=0x028b19d4, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: HandleSettled] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.then using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.then / d19b2739 - took 1.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method HandleSettled using hydrogen | ||
[optimizing: HandleSettled / 96e77201 - took 0.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method all using hydrogen | ||
[optimizing: all / 9a534859 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method OnSettled using hydrogen | ||
[optimizing: OnSettled / 9a534e61 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method flush using hydrogen | ||
[optimizing: flush / 9a534c69 - took 1.000, 1.000, 0.000 ms] | ||
**** DEOPT: HandleSettled at bailout #5, address 0x0, frame size 104 | ||
;;; Deferred code @238: allocate-object. | ||
[deoptimizing: begin 0x96e77201 HandleSettled @5] | ||
translating HandleSettled => node=33, height=8 | ||
0x0025f588: [top + 48] <- 0x9aa04121 ; [sp + 144] 000000009AA04121 <undefined> | ||
0x0025f580: [top + 40] <- 0xf2d696c9 ; rax 00000000F2D696C9 <a Promise> | ||
0x0025f578: [top + 32] <- 0x028e4398 ; caller's pc | ||
0x0025f570: [top + 24] <- 0x0025f5a8 ; caller's fp | ||
0x0025f568: [top + 16] <- 0x96e80d01; context | ||
0x0025f560: [top + 8] <- 0x96e77201; function | ||
0x0025f558: [top + 0] <- 0x9a534e19 ; rcx 000000009A534E19 <JS Function HandlePending> | ||
translating HandlePending => node=131, height=16 | ||
0x0025f550: [top + 72] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f548: [top + 64] <- 0xf2d696c9 ; rax 00000000F2D696C9 <a Promise> | ||
0x0025f540: [top + 56] <- 0x00000000 ; r8 0 | ||
0x0025f538: [top + 48] <- 0xf2d6c7b9 ; rbx 00000000F2D6C7B9 <JS Function onSettled> | ||
0x0025f530: [top + 40] <- 0x028b1a50 ; caller's pc | ||
0x0025f528: [top + 32] <- 0x0025f570 ; caller's fp | ||
0x0025f520: [top + 24] <- 0x96e80d01; context | ||
0x0025f518: [top + 16] <- 0x9a534e19; function | ||
0x0025f510: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f508: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
[deoptimizing: end 0x9a534e19 HandlePending => node=131, pc=0x028e512c, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: HandleSettled] | ||
[marking expect 0x96ecb500 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method HandlePending using hydrogen | ||
[optimizing: HandlePending / 9a534e19 - took 1.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method expect using hydrogen | ||
[optimizing: expect / 96ecb501 - took 0.000, 0.000, 0.000 ms] | ||
[marking 0xf2b5c980 for recompilation, reason: hot and stable, ICs with typeinfo: 1/1 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method using hydrogen | ||
[optimizing: / f2b5c981 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method resolverFor using hydrogen | ||
[optimizing: resolverFor / 9a534f39 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.inspect using hydrogen | ||
[disabled optimization for TRACE_FUNCTIONS.fn.Promise.inspect, reason: SwitchStatement: non-literal switch label] | ||
----------------------------------------------------------- | ||
Compiling method Reject using hydrogen | ||
[optimizing: Reject / 96ecb591 - took 1.000, 1.000, 0.000 ms] | ||
**** DEOPT: flush at bailout #21, address 0x0, frame size 88 | ||
;;; @162: deoptimize. | ||
[deoptimizing: begin 0x9a534c69 flush @21] | ||
translating flush => node=146, height=32 | ||
0x0025f6e0: [top + 64] <- 0xf2b7d5a9 ; [sp + 120] 00000000F2B7D5A9 <an Object> | ||
0x0025f6d8: [top + 56] <- 0x028c7d37 ; caller's pc | ||
0x0025f6d0: [top + 48] <- 0x0025f700 ; caller's fp | ||
0x0025f6c8: [top + 40] <- 0x96e80d01; context | ||
0x0025f6c0: [top + 32] <- 0x9a534c69; function | ||
0x0025f6b8: [top + 24] <- 0xf2f7d369 ; rbx 00000000F2F7D369 <a TaskNode> | ||
0x0025f6b0: [top + 16] <- 0xf2b5d879 ; rdx 00000000F2B5D879 <a Promise> | ||
0x0025f6a8: [top + 8] <- 0xf2b7d461 ; rcx 00000000F2B7D461 <a Promise> | ||
0x0025f6a0: [top + 0] <- 0x9a534ea9 ; r8 000000009A534EA9 <JS Function Then> | ||
translating Then => node=74, height=16 | ||
0x0025f698: [top + 64] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f690: [top + 56] <- 0xf2b5d879 ; rdx 00000000F2B5D879 <a Promise> | ||
0x0025f688: [top + 48] <- 0xf2b7d461 ; rcx 00000000F2B7D461 <a Promise> | ||
0x0025f680: [top + 40] <- 0x0286b4f5 ; caller's pc | ||
0x0025f678: [top + 32] <- 0x0025f6d0 ; caller's fp | ||
0x0025f670: [top + 24] <- 0x96e80d01; context | ||
0x0025f668: [top + 16] <- 0x9a534ea9; function | ||
0x0025f660: [top + 8] <- 0x9aa04101 ; r9 000000009AA04101 <null> | ||
0x0025f658: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
[deoptimizing: end 0x9a534ea9 Then => node=74, pc=0x0286b7cc, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: flush] | ||
----------------------------------------------------------- | ||
Compiling method HandleSettled using hydrogen | ||
[optimizing: HandleSettled / 96e77201 - took 1.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method Then using hydrogen | ||
[optimizing: Then / 9a534ea9 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method reject using hydrogen | ||
[optimizing: reject / 9a5347c9 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method flush using hydrogen | ||
[optimizing: flush / 9a534c69 - took 1.000, 0.000, 0.000 ms] | ||
[marking Assertion.be.Assertion.equal 0xd19b54f8 for recompilation, reason: small function, ICs with typeinfo: 2/3 (66%)] | ||
[marking Assertion.(anonymous function) 0x96ea9f00 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method Assertion.be.Assertion.equal using hydrogen | ||
[optimizing: Assertion.be.Assertion.equal / d19b54f9 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method defer using hydrogen | ||
[optimizing: defer / 9a534781 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: all at bailout #25, address 0x0, frame size 96 | ||
;;; @244: deoptimize. | ||
[deoptimizing: begin 0x9a534859 all @25] | ||
translating all => node=246, height=32 | ||
0x0025f428: [top + 72] <- 0x96ecb429 ; [sp + 136] 0000000096ECB429 <JS Function P> | ||
0x0025f420: [top + 64] <- 0xf2f0c409 ; [sp + 128] 00000000F2F0C409 <JS Array[19]> | ||
0x0025f418: [top + 56] <- 0x028bb23b ; caller's pc | ||
0x0025f410: [top + 48] <- 0x0025f458 ; caller's fp | ||
0x0025f408: [top + 40] <- 0xf2f0cd39; context | ||
0x0025f400: [top + 32] <- 0x9a534859; function | ||
0x0025f3f8: [top + 24] <- 0x1300000000 ; [sp + 64] 19 | ||
0x0025f3f0: [top + 16] <- 0xf2f0cd81 ; [sp + 80] 00000000F2F0CD81 <JS Function onSettled> | ||
0x0025f3e8: [top + 8] <- 0 ; [sp + 24] (smi) | ||
0x0025f3e0: [top + 0] <- 0xf2f0cee9 ; [sp + 16] 00000000F2F0CEE9 <a Promise> | ||
[deoptimizing: end 0x9a534859 all => node=246, pc=0x02885f07, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: all] | ||
[marking a 0xf2f21f30 for recompilation, reason: small function, ICs with typeinfo: 2/5 (40%)] | ||
----------------------------------------------------------- | ||
Compiling method a using hydrogen | ||
[optimizing: a / f2f21f31 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method all using hydrogen | ||
[optimizing: all / 9a534859 - took 0.000, 1.000, 0.000 ms] | ||
**** DEOPT: all at bailout #26, address 0x0, frame size 80 | ||
;;; Deferred code @308: tagged-to-i. | ||
[deoptimizing: begin 0x9a534859 all @26] | ||
translating all => node=246, height=32 | ||
0x0025f430: [top + 72] <- 0x96ecb429 ; [sp + 120] 0000000096ECB429 <JS Function P> | ||
0x0025f428: [top + 64] <- 0xf2f35819 ; [sp + 112] 00000000F2F35819 <JS Array[19]> | ||
0x0025f420: [top + 56] <- 0x028bb470 ; caller's pc | ||
0x0025f418: [top + 48] <- 0x0025f458 ; caller's fp | ||
0x0025f410: [top + 40] <- 0xf2f35e89; context | ||
0x0025f408: [top + 32] <- 0x9a534859; function | ||
0x0025f400: [top + 24] <- 0x1300000000 ; [sp + 48] 19 | ||
0x0025f3f8: [top + 16] <- 0xf2f35ed1 ; [sp + 64] 00000000F2F35ED1 <JS Function onSettled> | ||
0x0025f3f0: [top + 8] <- 0 ; [sp + 16] (smi) | ||
0x0025f3e8: [top + 0] <- 0xf2f36039 ; rdx 00000000F2F36039 <a Promise> | ||
[deoptimizing: end 0x9a534859 all => node=246, pc=0x02885f07, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: all] | ||
----------------------------------------------------------- | ||
Compiling method all using hydrogen | ||
[optimizing: all / 9a534859 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: all at bailout #15, address 0x0, frame size 80 | ||
;;; Deferred code @312: tagged-to-i. | ||
[deoptimizing: begin 0x9a534859 all @15] | ||
translating all => node=249, height=32 | ||
0x0025f5e8: [top + 72] <- 0x9aa04121 ; [sp + 120] 000000009AA04121 <undefined> | ||
0x0025f5e0: [top + 64] <- 0xf2f772d9 ; rbx 00000000F2F772D9 <JS Array[3]> | ||
0x0025f5d8: [top + 56] <- 0x0286bc9f ; caller's pc | ||
0x0025f5d0: [top + 48] <- 0x0025f638 ; caller's fp | ||
0x0025f5c8: [top + 40] <- 0xf2f78071; context | ||
0x0025f5c0: [top + 32] <- 0x9a534859; function | ||
0x0025f5b8: [top + 24] <- 0x300000000 ; [sp + 48] 3 | ||
0x0025f5b0: [top + 16] <- 0xf2f780b9 ; [sp + 64] 00000000F2F780B9 <JS Function onSettled> | ||
0x0025f5a8: [top + 8] <- 0 ; [sp + 16] (smi) | ||
0x0025f5a0: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
[deoptimizing: end 0x9a534859 all => node=249, pc=0x02885e6e, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: all] | ||
----------------------------------------------------------- | ||
Compiling method ResolveWithPromise using hydrogen | ||
[optimizing: ResolveWithPromise / 9a534d89 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.spread using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.spread / d19b2811 - took 0.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method all using hydrogen | ||
[optimizing: all / 9a534859 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method Propagate using hydrogen | ||
[optimizing: Propagate / 9a534d41 - took 0.000, 1.000, 0.000 ms] | ||
[marking isEmpty 0xd1985810 for recompilation, reason: small function, ICs with typeinfo: 1/2 (50%)] | ||
----------------------------------------------------------- | ||
Compiling method isEmpty using hydrogen | ||
[optimizing: isEmpty / d1985811 - took 1.000, 0.000, 0.000 ms] | ||
[marking remove 0xd1985780 for recompilation, reason: small function, ICs with typeinfo: 10/10 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method remove using hydrogen | ||
[optimizing: remove / d1985781 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.delay using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.delay / d19b28a1 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.timeout using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.timeout / d19b2859 - took 0.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method requestFlushForNodeJS using hydrogen | ||
[optimizing: requestFlushForNodeJS / 9a534b71 - took 0.000, 1.000, 0.000 ms] | ||
[marking init 0xd19856a8 for recompilation, reason: small function, ICs with typeinfo: 2/2 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method init using hydrogen | ||
[optimizing: init / d19856a9 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: remove at bailout #3, address 0x0, frame size 8 | ||
;;; @21: branch. | ||
[deoptimizing: begin 0xd1985781 remove @3] | ||
translating remove => node=8, height=8 | ||
0x0025f360: [top + 48] <- 0xd19858b9 ; [sp + 48] 00000000D19858B9 <an Object> | ||
0x0025f358: [top + 40] <- 0xf2e833d1 ; [sp + 40] 00000000F2E833D1 <JS Object> | ||
0x0025f350: [top + 32] <- 0x028e61ad ; caller's pc | ||
0x0025f348: [top + 24] <- 0x0025f380 ; caller's fp | ||
0x0025f340: [top + 16] <- 0xd1987cc9; context | ||
0x0025f338: [top + 8] <- 0xd1985781; function | ||
0x0025f330: [top + 0] <- 0x9aa04101 ; rax 000000009AA04101 <null> | ||
[deoptimizing: end 0xd1985781 remove => node=8, pc=0x028c6444, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: remove] | ||
[marking Suite.fullTitle 0xd1956328 for recompilation, reason: small function, ICs with typeinfo: 7/7 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method Suite.fullTitle using hydrogen | ||
[optimizing: Suite.fullTitle / d1956329 - took 1.000, 0.000, 0.000 ms] | ||
[marking global.setImmediate 0x9aa6ce58 for recompilation, reason: small function, ICs with typeinfo: 3/3 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method global.setImmediate using hydrogen | ||
[optimizing: global.setImmediate / 9aa6ce59 - took 1.000, 1.000, 0.000 ms] | ||
[marking shift 0xd1985738 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method shift using hydrogen | ||
[optimizing: shift / d1985739 - took 1.000, 0.000, 0.000 ms] | ||
[marking NonNumberToNumber 0x9aa49a28 for recompilation, reason: small function, ICs with typeinfo: 2/3 (66%)] | ||
----------------------------------------------------------- | ||
Compiling method NonNumberToNumber using hydrogen | ||
[disabled optimization for NonNumberToNumber, reason: call to a JavaScript runtime function] | ||
[marking next 0xf2de1f88 for recompilation, reason: small function, ICs with typeinfo: 3/3 (100%)] | ||
[marking valueOf 0x9aa4ddf8 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method valueOf using hydrogen | ||
[optimizing: valueOf / 9aa4ddf9 - took 0.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method next using hydrogen | ||
[optimizing: next / f2de1f89 - took 0.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.done using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.done / d19b2781 - took 0.000, 0.000, 0.000 ms] | ||
**** DEOPT: TRACE_FUNCTIONS.fn.Promise.done at bailout #1, address 0x0, frame size 16 | ||
;;; @17: branch. | ||
[deoptimizing: begin 0xd19b2781 TRACE_FUNCTIONS.fn.Promise.done @1] | ||
translating TRACE_FUNCTIONS.fn.Promise.done => node=3, height=8 | ||
0x0025f440: [top + 56] <- 0xf2de52f9 ; [sp + 64] 00000000F2DE52F9 <a Promise> | ||
0x0025f438: [top + 48] <- 0xf2de53d1 ; rax 00000000F2DE53D1 <JS Function> | ||
0x0025f430: [top + 40] <- 0xf2de5351 ; [sp + 48] 00000000F2DE5351 <JS Function> | ||
0x0025f428: [top + 32] <- 0x02b219de ; caller's pc | ||
0x0025f420: [top + 24] <- 0x0025f458 ; caller's fp | ||
0x0025f418: [top + 16] <- 0x96e80d01; context | ||
0x0025f410: [top + 8] <- 0xd19b2781; function | ||
0x0025f408: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
[deoptimizing: end 0xd19b2781 TRACE_FUNCTIONS.fn.Promise.done => node=3, pc=0x02b0d698, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: TRACE_FUNCTIONS.fn.Promise.done] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.nodeify using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.nodeify / d19b29f1 - took 1.000, 0.000, 0.000 ms] | ||
**** DEOPT: TRACE_FUNCTIONS.fn.Promise.nodeify at bailout #1, address 0x0, frame size 8 | ||
;;; @17: branch. | ||
[deoptimizing: begin 0xd19b29f1 TRACE_FUNCTIONS.fn.Promise.nodeify @1] | ||
translating TRACE_FUNCTIONS.fn.Promise.nodeify => node=3, height=0 | ||
0x0025f438: [top + 40] <- 0xf2c660e1 ; [sp + 48] 00000000F2C660E1 <a Promise> | ||
0x0025f430: [top + 32] <- 0x9aa04121 ; [sp + 40] 000000009AA04121 <undefined> | ||
0x0025f428: [top + 24] <- 0x028bf08f ; caller's pc | ||
0x0025f420: [top + 16] <- 0x0025f450 ; caller's fp | ||
0x0025f418: [top + 8] <- 0xf2c664a9; context | ||
0x0025f410: [top + 0] <- 0xd19b29f1; function | ||
[deoptimizing: end 0xd19b29f1 TRACE_FUNCTIONS.fn.Promise.nodeify => node=3, pc=0x02b21993, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: TRACE_FUNCTIONS.fn.Promise.nodeify] | ||
[marking Runnable.timeout 0xd1955d88 for recompilation, reason: small function, ICs with typeinfo: 2/6 (33%)] | ||
----------------------------------------------------------- | ||
Compiling method Runnable.timeout using hydrogen | ||
[disabled optimization for Runnable.timeout, reason: assignment to parameter in arguments object] | ||
[marking Runner.hook 0xd19ab230 for recompilation, reason: small function, ICs with typeinfo: 4/4 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method Runner.hook using hydrogen | ||
[optimizing: Runner.hook / d19ab231 - took 0.000, 1.000, 0.000 ms] | ||
[marking 0xf2ca59d8 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.nodeify using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.nodeify / d19b29f1 - took 0.000, 0.000, 0.000 ms] | ||
[marking IsPrimitive 0x9aa54650 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)] | ||
----------------------------------------------------------- | ||
Compiling method IsPrimitive using hydrogen | ||
[optimizing: IsPrimitive / 9aa54651 - took 0.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method TRACE_FUNCTIONS.fn.Promise.done using hydrogen | ||
[optimizing: TRACE_FUNCTIONS.fn.Promise.done / d19b2781 - took 1.000, 0.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method queueTask using hydrogen | ||
[optimizing: queueTask / 9a534cb1 - took 0.000, 0.000, 0.000 ms] | ||
**** DEOPT: flush at bailout #23, address 0x0, frame size 88 | ||
;;; @207: branch. | ||
[deoptimizing: begin 0x9a534c69 flush @23] | ||
translating flush => node=146, height=32 | ||
0x0025f6e0: [top + 64] <- 0xf2cf0931 ; [sp + 120] 00000000F2CF0931 <an Object> | ||
0x0025f6d8: [top + 56] <- 0x028c7d37 ; caller's pc | ||
0x0025f6d0: [top + 48] <- 0x0025f700 ; caller's fp | ||
0x0025f6c8: [top + 40] <- 0x96e80d01; context | ||
0x0025f6c0: [top + 32] <- 0x9a534c69; function | ||
0x0025f6b8: [top + 24] <- 0x9a51b7b1 ; [sp + 56] 000000009A51B7B1 <a TaskNode> | ||
0x0025f6b0: [top + 16] <- 0xf2cf11a9 ; [sp + 40] 00000000F2CF11A9 <a Promise> | ||
0x0025f6a8: [top + 8] <- 0xf2cf1261 ; rbx 00000000F2CF1261 <a Promise> | ||
0x0025f6a0: [top + 0] <- 0x9a534ea9 ; [sp + 24] 000000009A534EA9 <JS Function Then> | ||
translating Then => node=224, height=16 | ||
0x0025f698: [top + 64] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f690: [top + 56] <- 0xf2cf11a9 ; [sp + 40] 00000000F2CF11A9 <a Promise> | ||
0x0025f688: [top + 48] <- 0xf2cf1261 ; rbx 00000000F2CF1261 <a Promise> | ||
0x0025f680: [top + 40] <- 0x0286b4f5 ; caller's pc | ||
0x0025f678: [top + 32] <- 0x0025f6d0 ; caller's fp | ||
0x0025f670: [top + 24] <- 0x96e80d01; context | ||
0x0025f668: [top + 16] <- 0x9a534ea9; function | ||
0x0025f660: [top + 8] <- 0xf2cf0971 ; rax 00000000F2CF0971 <a Domain> | ||
0x0025f658: [top + 0] <- 0xf2cf1219 ; rdx 00000000F2CF1219 <JS Function> | ||
[deoptimizing: end 0x9a534ea9 Then => node=224, pc=0x0286b8ad, state=NO_REGISTERS, alignment=no padding, took 1.000 ms] | ||
[removing optimized code for: flush] | ||
**** DEOPT: Then at bailout #3, address 0x0, frame size 32 | ||
;;; @23: branch. | ||
[deoptimizing: begin 0x9a534ea9 Then @3] | ||
translating Then => node=3, height=16 | ||
0x0025f698: [top + 64] <- 0x9aa04121 ; [sp + 80] 000000009AA04121 <undefined> | ||
0x0025f690: [top + 56] <- 0xf2cf22b1 ; rbx 00000000F2CF22B1 <a Promise> | ||
0x0025f688: [top + 48] <- 0xf2cf2309 ; [sp + 64] 00000000F2CF2309 <a Promise> | ||
0x0025f680: [top + 40] <- 0x0286b4f5 ; caller's pc | ||
0x0025f678: [top + 32] <- 0x0025f6d0 ; caller's fp | ||
0x0025f670: [top + 24] <- 0x96e80d01; context | ||
0x0025f668: [top + 16] <- 0x9a534ea9; function | ||
0x0025f660: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f658: [top + 0] <- 000000009AA04121 <undefined> ; literal | ||
[deoptimizing: end 0x9a534ea9 Then => node=3, pc=0x0286b6da, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: Then] | ||
----------------------------------------------------------- | ||
Compiling method DoneEb using hydrogen | ||
[optimizing: DoneEb / 9a534cf9 - took 0.000, 1.000, 0.000 ms] | ||
**** DEOPT: DoneEb at bailout #2, address 0x0, frame size 8 | ||
;;; @21: branch. | ||
[deoptimizing: begin 0x9a534cf9 DoneEb @2] | ||
translating DoneEb => node=8, height=8 | ||
0x0025f5d0: [top + 48] <- 0x9aa04121 ; [sp + 48] 000000009AA04121 <undefined> | ||
0x0025f5c8: [top + 40] <- 0xf2cf0059 ; [sp + 40] 00000000F2CF0059 <an Error> | ||
0x0025f5c0: [top + 32] <- 0x0286bc9f ; caller's pc | ||
0x0025f5b8: [top + 24] <- 0x0025f620 ; caller's fp | ||
0x0025f5b0: [top + 16] <- 0x96e80d01; context | ||
0x0025f5a8: [top + 8] <- 0x9a534cf9; function | ||
0x0025f5a0: [top + 0] <- 0x9aa04101 ; rax 000000009AA04101 <null> | ||
[deoptimizing: end 0x9a534cf9 DoneEb => node=8, pc=0x02b0d8b8, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: DoneEb] | ||
**** DEOPT: requestFlushForNodeJS at bailout #3, address 0x0, frame size 24 | ||
;;; @19: branch. | ||
[deoptimizing: begin 0x9a534b71 requestFlushForNodeJS @3] | ||
translating requestFlushForNodeJS => node=12, height=16 | ||
0x0025f5c0: [top + 48] <- 0x9aa04121 ; [sp + 56] 000000009AA04121 <undefined> | ||
0x0025f5b8: [top + 40] <- 0x02b2a2a3 ; caller's pc | ||
0x0025f5b0: [top + 32] <- 0x0025f5e0 ; caller's fp | ||
0x0025f5a8: [top + 24] <- 0x96e80d01; context | ||
0x0025f5a0: [top + 16] <- 0x9a534b71; function | ||
0x0025f598: [top + 8] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f590: [top + 0] <- 0xf2cf0971 ; rax 00000000F2CF0971 <a Domain> | ||
[deoptimizing: end 0x9a534b71 requestFlushForNodeJS => node=12, pc=0x0288c345, state=TOS_REG, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: requestFlushForNodeJS] | ||
**** DEOPT: Assertion.be.Assertion.equal at bailout #2, address 0x0, frame size 16 | ||
;;; @47: gap. | ||
[deoptimizing: begin 0xd19b54f9 Assertion.be.Assertion.equal @2] | ||
translating Assertion.be.Assertion.equal => node=3, height=0 | ||
0x0025f4b8: [top + 40] <- 0xf2b51699 ; rbx 00000000F2B51699 <an Assertion> | ||
0x0025f4b0: [top + 32] <- 0xf2cf0971 ; [sp + 48] 00000000F2CF0971 <a Domain> | ||
0x0025f4a8: [top + 24] <- 0x0282863e ; caller's pc | ||
0x0025f4a0: [top + 16] <- 0x0025f4e8 ; caller's fp | ||
0x0025f498: [top + 8] <- 0xf2b601e1; context | ||
0x0025f490: [top + 0] <- 0xd19b54f9; function | ||
[deoptimizing: end 0xd19b54f9 Assertion.be.Assertion.equal => node=3, pc=0x028d71a5, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: Assertion.be.Assertion.equal] | ||
----------------------------------------------------------- | ||
Compiling method requestFlushForNodeJS using hydrogen | ||
[optimizing: requestFlushForNodeJS / 9a534b71 - took 0.000, 1.000, 0.000 ms] | ||
**** DEOPT: requestFlushForNodeJS at bailout #4, address 0x0, frame size 24 | ||
;;; @37: branch. | ||
[deoptimizing: begin 0x9a534b71 requestFlushForNodeJS @4] | ||
translating requestFlushForNodeJS => node=73, height=8 | ||
0x0025f0b8: [top + 40] <- 0x9aa04121 ; [sp + 56] 000000009AA04121 <undefined> | ||
0x0025f0b0: [top + 32] <- 0x02b2868d ; caller's pc | ||
0x0025f0a8: [top + 24] <- 0x0025f0e8 ; caller's fp | ||
0x0025f0a0: [top + 16] <- 0x96e80d01; context | ||
0x0025f098: [top + 8] <- 0x9a534b71; function | ||
0x0025f090: [top + 0] <- 0xf2b71161 ; rax 00000000F2B71161 <a Domain> | ||
[deoptimizing: end 0x9a534b71 requestFlushForNodeJS => node=73, pc=0x0288c35c, state=NO_REGISTERS, alignment=no padding, took 0.000 ms] | ||
[removing optimized code for: requestFlushForNodeJS] | ||
----------------------------------------------------------- | ||
Compiling method flush using hydrogen | ||
[optimizing: flush / 9a534c69 - took 1.000, 1.000, 0.000 ms] | ||
----------------------------------------------------------- | ||
Compiling method DoneEb using hydrogen | ||
[optimizing: DoneEb / 9a534cf9 - took 0.000, 0.000, 0.000 ms] | ||
**** DEOPT: flush at bailout #25, address 0x0, frame size 96 | ||
;;; @241: branch. | ||
[deoptimizing: begin 0x9a534c69 flush @25] | ||
translating flush => node=146, height=32 | ||
0x0025f6e0: [top + 64] <- 0xf2b73c79 ; [sp + 128] 00000000F2B73C79 <an Object> | ||
0x0025f6d8: [top + 56] <- 0x028c7d37 ; caller's pc | ||
0x0025f6d0: [top + 48] <- 0x0025f700 ; caller's fp | ||
0x0025f6c8: [top + 40] <- 0x96e80d01; context | ||
0x0025f6c0: [top + 32] <- 0x9a534c69; function | ||
0x0025f6b8: [top + 24] <- 0x96ea8569 ; [sp + 64] 0000000096EA8569 <a TaskNode> | ||
0x0025f6b0: [top + 16] <- 0xf2b73fb1 ; [sp + 48] 00000000F2B73FB1 <a Promise> | ||
0x0025f6a8: [top + 8] <- 0xf2b74069 ; [sp + 40] 00000000F2B74069 <a Promise> | ||
0x0025f6a0: [top + 0] <- 0x9a534ea9 ; [sp + 24] 000000009A534EA9 <JS Function Then> | ||
translating Then => node=153, height=24 | ||
0x0025f698: [top + 72] <- 000000009AA04121 <undefined> ; literal | ||
0x0025f690: [top + 64] <- 0xf2b73fb1 ; [sp + 48] 00000000F2B73FB1 <a Promise> | ||
0x0025f688: [top + 56] <- 0xf2b74069 ; [sp + 40] 00000000F2B74069 <a Promise> | ||
0x0025f680: [top + 48] <- 0x0286b4f5 ; caller's pc | ||
0x0025f678: [top + 40] <- 0x0025f6d0 ; caller's fp | ||
0x0025f670: [top + 32] <- 0x96e80d01; context | ||
0x0025f668: [top + 24] <- 0x9a534ea9; function | ||
0x0025f660: [top + 16] <- 0xf2b71161 ; [sp + 32] 00000000F2B71161 <a Domain> | ||
0x0025f658: [top + 8] <- 0xf2b74021 ; [sp + 16] 00000000F2B74021 <JS Function> | ||
0x0025f650: [top + 0] <- 0x9aa04161 ; rax 000000009AA04161 <true> | ||
[deoptimizing: end 0x9a534ea9 Then => node=153, pc=0x0286b8d3, state=TOS_REG, alignment=no padding, took 1.000 ms] | ||
[removing optimized code for: flush] | ||
----------------------------------------------------------- | ||
Compiling method Then using hydrogen | ||
[optimizing: Then / 9a534ea9 - took 0.000, 1.000, 0.000 ms] |
335
p.js
@@ -50,5 +50,5 @@ /*! | ||
var m = | ||
/at .+ \(([\s\S]+):(\d+):(?:\d+)\)$/.exec( stackLine ) || | ||
/at .+ \((.+):(\d+):(?:\d+)\)$/.exec( stackLine ) || | ||
/at ([^ ]+):(\d+):(?:\d+)$/.exec( stackLine ) || | ||
/@([\s\S]+):(\d+):(?:\d+)$/.exec( stackLine ); | ||
/@(.+):(\d+):(?:\d+)$/.exec( stackLine ); | ||
@@ -152,7 +152,4 @@ return m ? { fileName: m[1], lineNumber: Number(m[2]) } : null; | ||
function TaskNode() { | ||
this.task = null; | ||
this.a = null; | ||
this.b = null; | ||
this.domain = null; | ||
this.trace = null; | ||
this.next = null; | ||
@@ -181,16 +178,8 @@ } | ||
currentTrace = h.trace; | ||
if ( h.domain ) { | ||
runInDomain( h.domain, h.task, h.a, h.b ); | ||
h.domain = null; | ||
} else { | ||
(1,h.task)( h.a, h.b ); | ||
} | ||
h.task = null; | ||
var a = h.a; | ||
var b = h.b; | ||
h.a = null; | ||
h.b = null; | ||
h.trace = null; | ||
Then( a, b ); | ||
} | ||
@@ -202,34 +191,7 @@ | ||
function beforeThrow() { | ||
head.task = null; | ||
head.a = null; | ||
head.b = null; | ||
head.domain = null; | ||
head.trace = null; | ||
requestFlush(); | ||
} | ||
function runInDomain( domain, task, a, b ) { | ||
if ( domain._disposed ) { | ||
return; | ||
} | ||
domain.enter(); | ||
task( a, b ); | ||
domain.exit(); | ||
} | ||
function queueTask( task, a, b ) { | ||
queueTask_( | ||
task, a, b, | ||
isNodeJS ? process.domain : null, | ||
P.longStackSupport ? getTrace() : null | ||
); | ||
} | ||
function queueTask_( task, a, b, domain, trace ) { | ||
function scheduleThen( a, b ) { | ||
var node = tail.next; | ||
if ( node === head ) { | ||
node = new TaskNode(); | ||
tail.next = node; | ||
tail.next = node = new TaskNode(); | ||
node.next = head; | ||
@@ -242,7 +204,4 @@ } else { | ||
node.task = task; | ||
node.a = a; | ||
node.b = b; | ||
node.domain = domain; | ||
node.trace = trace; | ||
@@ -302,3 +261,3 @@ if ( !flushing ) { | ||
handleError = function( e ) { | ||
beforeThrow(); | ||
requestFlush(); | ||
throw e; | ||
@@ -314,16 +273,2 @@ }; | ||
function tryCall( toCall, onError ) { | ||
try { | ||
toCall.call(); | ||
} catch ( e ) { | ||
onError( e ); | ||
} | ||
} | ||
function asap( task ) { | ||
queueTask( tryCall, task, handleError ); | ||
} | ||
//__________________________________________________________________________ | ||
@@ -338,22 +283,20 @@ | ||
var OP_THEN = -2; | ||
var OP_PROPAGATE = -3; | ||
var OP_MULTIPLE = -4; | ||
var OP_MULTIPLE = -3; | ||
function ReportIfRejected( p ) { | ||
if ( p._state === REJECTED ) { | ||
queueTask_( reportError, p._value, handleError, p._domain, null ); | ||
function DoneEb( e ) { | ||
if ( P.onerror ) { | ||
(1,P.onerror)( e ); | ||
} else { | ||
throw e; | ||
} | ||
} | ||
function reportError( error, onError ) { | ||
if ( P.onerror ) { | ||
try { | ||
(1,P.onerror)( error ); | ||
} catch ( e ) { | ||
onError( e ); | ||
function ReportIfRejected( p ) { | ||
if ( p._state === REJECTED ) { | ||
if ( p._domain ) { | ||
p._domain.enter(); | ||
} | ||
} else { | ||
onError( error ); | ||
handleError( p._value ); | ||
} | ||
@@ -365,3 +308,3 @@ } | ||
x : | ||
Resolve( new Promise(), x, false ); | ||
Resolve( new Promise(), x ); | ||
} | ||
@@ -371,2 +314,9 @@ | ||
function HandleSettled( p ) { | ||
if ( p._pending ) { | ||
HandlePending( p, p._op, p._pending ); | ||
p._pending = null; | ||
} | ||
} | ||
function Fulfill( p, value ) { | ||
@@ -380,6 +330,3 @@ if ( p._state ) { | ||
if ( p._pending ) { | ||
HandlePending( p, p._op, p._pending ); | ||
p._pending = null; | ||
} | ||
HandleSettled( p ); | ||
} | ||
@@ -403,6 +350,3 @@ | ||
if ( p._pending ) { | ||
HandlePending( p, p._op, p._pending ); | ||
p._pending = null; | ||
} | ||
HandleSettled( p ); | ||
} | ||
@@ -419,9 +363,6 @@ | ||
if ( p._pending ) { | ||
HandlePending( p, p._op, p._pending ); | ||
p._pending = null; | ||
} | ||
HandleSettled( p ); | ||
} | ||
function Resolve( p, x, sync ) { | ||
function Resolve( p, x ) { | ||
if ( p._state ) { | ||
@@ -432,48 +373,57 @@ return p; | ||
if ( x instanceof Promise ) { | ||
if ( x === p ) { | ||
Reject( p, new TypeError("You can't resolve a promise with itself") ); | ||
ResolveWithPromise( p, x ); | ||
} else if ( x._state ) { | ||
Propagate( x, p ); | ||
} else { | ||
var type = typeof x; | ||
if ( type === "object" && x !== null || type === "function" ) { | ||
ResolveWithObject( p, x ) | ||
} else { | ||
OnSettled( x, OP_PROPAGATE, p ); | ||
Fulfill( p, x ); | ||
} | ||
} | ||
} else if ( x !== Object(x) ) { | ||
Fulfill( p, x ); | ||
return p; | ||
} | ||
} else if ( sync ) { | ||
Assimilate( p, x ); | ||
function ResolveWithPromise( p, x ) { | ||
if ( x === p ) { | ||
Reject( p, new TypeError("You can't resolve a promise with itself") ); | ||
} else if ( x._state ) { | ||
Propagate( x, p ); | ||
} else { | ||
queueTask( Assimilate, p, x ); | ||
OnSettled( x, OP_THEN, p ); | ||
} | ||
return p; | ||
} | ||
function Assimilate( p, x ) { | ||
var r, then; | ||
function ResolveWithObject( p, x ) { | ||
var then = GetThen( p, x ); | ||
try { | ||
then = x.then; | ||
if ( typeof then === "function" ) { | ||
TryResolver( resolverFor(p), then, x ); | ||
} catch ( e1 ) { | ||
Reject( p, e1 ); | ||
return; | ||
} else { | ||
Fulfill( p, x ); | ||
} | ||
} | ||
if ( typeof then === "function" ) { | ||
r = resolverFor( p ); | ||
function GetThen( p, x ) { | ||
try { | ||
return x.then; | ||
try { | ||
call.call( then, x, r.resolve, r.reject ); | ||
} catch ( e ) { | ||
Reject( p, e ); | ||
return null; | ||
} | ||
} | ||
} catch ( e2 ) { | ||
r.reject( e2 ); | ||
} | ||
function TryResolver( d, resolver, x ) { | ||
try { | ||
call.call( resolver, x, d.resolve, d.reject ); | ||
} else { | ||
Fulfill( p, x ); | ||
} catch ( e ) { | ||
d.reject( e ); | ||
} | ||
@@ -483,31 +433,15 @@ } | ||
function HandlePending( p, op, pending ) { | ||
switch ( op ) { | ||
case OP_CALL: | ||
pending( p ); | ||
break; | ||
if ( op === OP_CALL ) { | ||
pending( p ); | ||
case OP_THEN: | ||
queueTask_( | ||
Then, p, pending, | ||
p._domain || pending._domain, | ||
pending._trace | ||
); | ||
break; | ||
} else if ( op === OP_THEN ) { | ||
scheduleThen( p, pending ); | ||
case OP_PROPAGATE: | ||
queueTask_( | ||
Propagate, p, pending, | ||
null, | ||
null | ||
); | ||
break; | ||
} else if ( op === OP_MULTIPLE ) { | ||
for ( var i = 0, l = pending.length; i < l; i += 2 ) { | ||
HandlePending( p, pending[i], pending[i + 1] ); | ||
} | ||
case OP_MULTIPLE: | ||
for ( var i = 0, l = pending.length; i < l; i += 2 ) { | ||
HandlePending( p, pending[i], pending[i + 1] ); | ||
} | ||
break; | ||
default: | ||
pending( p, op ); | ||
} else { | ||
pending( p, op ); | ||
} | ||
@@ -534,3 +468,8 @@ } | ||
function Then( parent, p ) { | ||
var domain = parent._domain || p._domain; | ||
currentTrace = p._trace; | ||
var cb = parent._state === FULFILLED ? p._cb : p._eb; | ||
p._cb = null; | ||
@@ -544,2 +483,9 @@ p._eb = null; | ||
} else if ( domain ) { | ||
if ( !domain._disposed ) { | ||
domain.enter(); | ||
HandleCallback( p, cb, parent._value ); | ||
domain.exit(); | ||
} | ||
} else { | ||
@@ -561,3 +507,3 @@ HandleCallback( p, cb, parent._value ); | ||
Resolve( p, x, true ); | ||
Resolve( p, x ); | ||
} | ||
@@ -574,3 +520,3 @@ | ||
done = true; | ||
Resolve( promise, y, false ); | ||
Resolve( promise, y ); | ||
} | ||
@@ -625,4 +571,9 @@ }, | ||
OnSettled( this, OP_THEN, promise ); | ||
if ( this._state ) { | ||
scheduleThen( this, promise ); | ||
} else { | ||
OnSettled( this, OP_THEN, promise ); | ||
} | ||
return promise; | ||
@@ -638,2 +589,4 @@ }; | ||
p = p.then( null, DoneEb ); | ||
OnSettled( p, OP_CALL, ReportIfRejected ); | ||
@@ -727,4 +680,4 @@ }; | ||
var waiting = 0; | ||
var output = new Array( len ); | ||
var waiting = len; | ||
@@ -739,12 +692,3 @@ function onSettled( p, i ) { | ||
for ( var i = 0; i < len; ++i ) { | ||
if ( i in input ) { | ||
var p = P( input[i] ); | ||
if ( p._state ) { | ||
output[ i ] = p.inspect(); | ||
} else { | ||
++waiting; | ||
OnSettled( p, i, onSettled ); | ||
} | ||
} | ||
OnSettled( P(input[i]), i, onSettled ); | ||
} | ||
@@ -769,29 +713,16 @@ | ||
var waiting = 0; | ||
var output = new Array( len ); | ||
var waiting = len; | ||
function onSettled( p, i ) { | ||
if ( p._state === REJECTED ) { | ||
Propagate( p, promise ); | ||
return; | ||
} | ||
output[ i ] = p._value; | ||
if ( --waiting === 0 ) { | ||
Fulfill( promise, output ); | ||
} | ||
} | ||
for ( var i = 0; i < len; ++i ) { | ||
if ( i in input ) { | ||
var p = P( input[i] ); | ||
if ( p._state === FULFILLED ) { | ||
output[ i ] = p._value; | ||
} else if ( p._state === REJECTED ) { | ||
if ( output !== null ) { | ||
if ( p._state === REJECTED ) { | ||
output = null; | ||
Propagate( p, promise ); | ||
break; | ||
} else { | ||
++waiting; | ||
OnSettled( p, i, onSettled ); | ||
output[ i ] = p._value; | ||
if ( --waiting === 0 ) { | ||
Fulfill( promise, output ); | ||
} | ||
} | ||
@@ -801,2 +732,6 @@ } | ||
for ( var i = 0; i < len; ++i ) { | ||
OnSettled( P(input[i]), i, onSettled ); | ||
} | ||
if ( waiting === 0 ) { | ||
@@ -833,6 +768,42 @@ Fulfill( promise, output ); | ||
P.denodeify = denodeify; | ||
function denodeify( f ) { | ||
return function() { | ||
var len = arguments.length; | ||
var args = new Array( len + 1 ); | ||
for ( var i = 0; i < len; ++i ) { | ||
args[i] = arguments[i]; | ||
} | ||
args[i] = resolver; | ||
function resolver( error, value ) { | ||
if ( error ) { | ||
d.reject( error ); | ||
} else { | ||
d.resolve( value ); | ||
} | ||
} | ||
var d = defer(); | ||
apply.call( f, this, args ); | ||
return d.promise; | ||
}; | ||
} | ||
P.onerror = null; | ||
P.nextTick = asap; | ||
P.nextTick = function nextTick( task ) { | ||
var p = new Promise(); | ||
Fulfill( p, task ); | ||
p = p.then( callValue ); | ||
OnSettled( p, OP_CALL, ReportIfRejected ); | ||
}; | ||
function callValue( value ) { | ||
value.call(); | ||
} | ||
var pEndingLine = captureLine(); | ||
@@ -839,0 +810,0 @@ |
@@ -1,1 +0,1 @@ | ||
(function(e){if(typeof module!=="undefined"&&module&&module.exports){module.exports=e()}else if(typeof define==="function"&&define.amd){define(e)}else{P=e()}})(function(){"use strict";var e=a(),n,t=null;function r(){var e=(new Error).stack;if(!e){return null}var n=[o(e,1)];if(t){n=n.concat(t);if(n.length===128){n.pop()}}return n}function i(e){var n=/at .+ \(([\s\S]+):(\d+):(?:\d+)\)$/.exec(e)||/at ([^ ]+):(\d+):(?:\d+)$/.exec(e)||/@([\s\S]+):(\d+):(?:\d+)$/.exec(e);return n?{fileName:n[1],lineNumber:Number(n[2])}:null}function a(){var e=(new Error).stack;if(!e){return 0}var t=e.split("\n");var r=t[0].indexOf("@")>0?t[1]:t[2];var a=i(r);if(!a){return 0}n=a.fileName;return a.lineNumber}function o(e,n){var t=e.split("\n");var r=[];for(var i=n|0,a=t.length;i<a;++i){var o=t[i];if(o&&!u(o)&&!l(o)){r.push(o)}}return r.join("\n")}function u(e){return e.indexOf("(module.js:")!==-1||e.indexOf("(node.js:")!==-1}function l(t){var r=i(t);return!!r&&r.fileName===n&&r.lineNumber>=e&&r.lineNumber<=pn}var f="\nFrom previous event:\n";function s(e){if(e instanceof Error&&e.stack&&e.stack.indexOf(f)===-1){e.stack=[o(e.stack,0)].concat(t||[]).join(f)}}var c=T(typeof process)&&process!=null&&{}.toString.call(process)==="[object process]",p=typeof setImmediate==="function",v=T(typeof MutationObserver)&&MutationObserver||T(typeof WebKitMutationObserver)&&WebKitMutationObserver,d=new S,_=d,h=false,m=0,y=c?$:v?K(O):W(O),b=[],g=W(N),w,k,x=T.call,j=T.apply;_.next=d;function S(){this.task=null;this.a=null;this.b=null;this.domain=null;this.trace=null;this.next=null}function T(e){return e==="object"||e==="function"}function N(){if(b.length){throw b.shift()}}function O(){while(d!==_){var e=d=d.next;if(m>=1024){_.next=_.next.next}else{++m}t=e.trace;if(e.domain){I(e.domain,e.task,e.a,e.b);e.domain=null}else{(1,e.task)(e.a,e.b)}e.task=null;e.a=null;e.b=null;e.trace=null}h=false;t=null}function E(){d.task=null;d.a=null;d.b=null;d.domain=null;d.trace=null;y()}function I(e,n,t,r){if(e._disposed){return}e.enter();n(t,r);e.exit()}function M(e,n,t){A(e,n,t,c?process.domain:null,L.longStackSupport?r():null)}function A(e,n,t,r,i){var a=_.next;if(a===d){a=new S;_.next=a;a.next=d}else{--m}_=a;a.task=e;a.a=n;a.b=t;a.domain=r;a.trace=i;if(!h){h=true;y()}}function $(){var e=process.domain;if(e){if(!k)k=(1,require)("domain");k.active=process.domain=null}if(h&&p){setImmediate(O)}else{process.nextTick(O)}if(e){k.active=process.domain=e}}function K(e){var n=1;var t=document.createTextNode("");var r=new v(e);r.observe(t,{characterData:true});return function(){n=-n;t.data=n}}function W(e){return function(){var n=setTimeout(r,0);var t=setInterval(r,50);function r(){clearTimeout(n);clearInterval(t);e()}}}if(c){w=function(e){E();throw e}}else{w=function(e){b.push(e);g()}}function q(e,n){try{e.call()}catch(t){n(t)}}function D(e){M(q,e,w)}var F=0;var P=1;var Y=2;var z=-1;var B=-2;var C=-3;var G=-4;function H(e){if(e._state===Y){A(J,e._value,w,e._domain,null)}}function J(e,n){if(L.onerror){try{(1,L.onerror)(e)}catch(t){n(t)}}else{n(e)}}function L(e){return e instanceof un?e:V(new un,e,false)}L.longStackSupport=false;function Q(e,n){if(e._state){return}e._state=P;e._value=n;if(e._pending){Z(e,e._op,e._pending);e._pending=null}}function R(e,n){if(e._state){return}if(t){s(n)}e._state=Y;e._value=n;if(c){e._domain=process.domain}if(e._pending){Z(e,e._op,e._pending);e._pending=null}}function U(e,n){if(n._state){return}n._state=e._state;n._value=e._value;n._domain=e._domain;if(n._pending){Z(n,n._op,n._pending);n._pending=null}}function V(e,n,t){if(e._state){return e}if(n instanceof un){if(n===e){R(e,new TypeError("You can't resolve a promise with itself"))}else if(n._state){U(n,e)}else{en(n,C,e)}}else if(n!==Object(n)){Q(e,n)}else if(t){X(e,n)}else{M(X,e,n)}return e}function X(e,n){var t,r;try{r=n.then}catch(i){R(e,i);return}if(typeof r==="function"){t=rn(e);try{x.call(r,n,t.resolve,t.reject)}catch(a){t.reject(a)}}else{Q(e,n)}}function Z(e,n,t){switch(n){case z:t(e);break;case B:A(nn,e,t,e._domain||t._domain,t._trace);break;case C:A(U,e,t,null,null);break;case G:for(var r=0,i=t.length;r<i;r+=2){Z(e,t[r],t[r+1])}break;default:t(e,n)}}function en(e,n,t){if(e._state){Z(e,n,t)}else if(!e._pending){e._pending=t;e._op=n}else if(e._op===G){e._pending.push(n,t)}else{e._pending=[e._op,e._pending,n,t];e._op=G}}function nn(e,n){var t=e._state===P?n._cb:n._eb;n._cb=null;n._eb=null;n._domain=null;n._trace=null;if(t===null){U(e,n)}else{tn(n,t,e._value)}}function tn(e,n,t){var r;try{r=n(t)}catch(i){R(e,i);return}V(e,r,true)}function rn(e){var n=false;return{promise:e,resolve:function(t){if(!n){n=true;V(e,t,false)}},reject:function(t){if(!n){n=true;R(e,t)}}}}L.defer=an;function an(){return rn(new un)}L.reject=on;function on(e){var n=new un;R(n,e);return n}function un(){this._state=0;this._value=void 0;this._domain=null;this._cb=null;this._eb=null;this._op=0;this._pending=null;this._trace=null}un.prototype.then=function(e,n){var t=new un;t._cb=typeof e==="function"?e:null;t._eb=typeof n==="function"?n:null;if(L.longStackSupport){t._trace=r()}if(c){t._domain=process.domain}en(this,B,t);return t};un.prototype.done=function(e,n){var t=this;if(e||n){t=t.then(e,n)}en(t,z,H)};un.prototype.fail=function(e){return this.then(null,e)};un.prototype.spread=function(e,n){return this.then(fn).then(function(n){return j.call(e,void 0,n)},n)};un.prototype.timeout=function(e,n){var i=new un;if(this._state!==F){U(this,i)}else{var a=L.longStackSupport?r():null;var o=setTimeout(function(){t=a;R(i,new Error(n||"Timed out after "+e+" ms"))},e);en(this,z,function(e){clearTimeout(o);U(e,i)})}return i};un.prototype.delay=function(e){var n=an();this.then(function(r){var i=t;setTimeout(function(){t=i;n.resolve(r)},e)},n.reject);return n.promise};un.prototype.all=function(){return this.then(fn)};un.prototype.allSettled=function(){return this.then(ln)};un.prototype.inspect=function(){switch(this._state){case F:return{state:"pending"};case P:return{state:"fulfilled",value:this._value};case Y:return{state:"rejected",reason:this._value};default:throw new TypeError("invalid state")}};un.prototype.nodeify=function(e){if(e){this.done(function(n){e(null,n)},e);return void 0}else{return this}};L.allSettled=ln;function ln(e){var n=new un;var t=e.length;if(typeof t!=="number"){R(n,new TypeError("input not array-like"));return n}var r=0;var i=new Array(t);function a(e,t){i[t]=e.inspect();if(--r===0){Q(n,i)}}for(var o=0;o<t;++o){if(o in e){var u=L(e[o]);if(u._state){i[o]=u.inspect()}else{++r;en(u,o,a)}}}if(r===0){Q(n,i)}return n}L.all=fn;function fn(e){var n=new un;var t=e.length;if(typeof t!=="number"){R(n,new TypeError("input not array-like"));return n}var r=0;var i=new Array(t);function a(e,t){if(e._state===Y){U(e,n);return}i[t]=e._value;if(--r===0){Q(n,i)}}for(var o=0;o<t;++o){if(o in e){var u=L(e[o]);if(u._state===P){i[o]=u._value}else if(u._state===Y){U(u,n);break}else{++r;en(u,o,a)}}}if(r===0){Q(n,i)}return n}L.spread=sn;function sn(e,n,t){return fn(e).then(function(e){return j.call(n,void 0,e)},t)}L.promised=cn;function cn(e){function n(n){return x.apply(e,n)}return function(){var e=arguments.length;var t=new Array(e+1);t[0]=this;for(var r=0;r<e;++r){t[r+1]=arguments[r]}return fn(t).then(n)}}L.onerror=null;L.nextTick=D;var pn=a();return L}); | ||
(function(e){if(typeof module!=="undefined"&&module&&module.exports){module.exports=e()}else if(typeof define==="function"&&define.amd){define(e)}else{P=e()}})(function(){"use strict";var e=o(),n,t=null;function r(){var e=(new Error).stack;if(!e){return null}var n=[u(e,1)];if(t){n=n.concat(t);if(n.length===128){n.pop()}}return n}function i(e){var n=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(e)||/at ([^ ]+):(\d+):(?:\d+)$/.exec(e)||/@(.+):(\d+):(?:\d+)$/.exec(e);return n?{fileName:n[1],lineNumber:Number(n[2])}:null}function o(){var e=(new Error).stack;if(!e){return 0}var t=e.split("\n");var r=t[0].indexOf("@")>0?t[1]:t[2];var o=i(r);if(!o){return 0}n=o.fileName;return o.lineNumber}function u(e,n){var t=e.split("\n");var r=[];for(var i=n|0,o=t.length;i<o;++i){var u=t[i];if(u&&!a(u)&&!f(u)){r.push(u)}}return r.join("\n")}function a(e){return e.indexOf("(module.js:")!==-1||e.indexOf("(node.js:")!==-1}function f(t){var r=i(t);return!!r&&r.fileName===n&&r.lineNumber>=e&&r.lineNumber<=vn}var l="\nFrom previous event:\n";function c(e){if(e instanceof Error&&e.stack&&e.stack.indexOf(l)===-1){e.stack=[u(e.stack,0)].concat(t||[]).join(l)}}var s=N(typeof process)&&process!=null&&{}.toString.call(process)==="[object process]",v=typeof setImmediate==="function",p=N(typeof MutationObserver)&&MutationObserver||N(typeof WebKitMutationObserver)&&WebKitMutationObserver,d=new T,h=d,_=false,m=0,y=s?A:p?I(E):M(E),b=[],w=M(S),g,x,j=N.call,k=N.apply;h.next=d;function T(){this.a=null;this.b=null;this.next=null}function N(e){return e==="object"||e==="function"}function S(){if(b.length){throw b.shift()}}function E(){while(d!==h){var e=d=d.next;if(m>=1024){h.next=h.next.next}else{++m}var n=e.a;var r=e.b;e.a=null;e.b=null;Z(n,r)}_=false;t=null}function O(e,n){var t=h.next;if(t===d){h.next=t=new T;t.next=d}else{--m}h=t;t.a=e;t.b=n;if(!_){_=true;y()}}function A(){var e=process.domain;if(e){if(!x)x=(1,require)("domain");x.active=process.domain=null}if(_&&v){setImmediate(E)}else{process.nextTick(E)}if(e){x.active=process.domain=e}}function I(e){var n=1;var t=document.createTextNode("");var r=new p(e);r.observe(t,{characterData:true});return function(){n=-n;t.data=n}}function M(e){return function(){var n=setTimeout(r,0);var t=setInterval(r,50);function r(){clearTimeout(n);clearInterval(t);e()}}}if(s){g=function(e){y();throw e}}else{g=function(e){b.push(e);w()}}var $=0;var K=1;var W=2;var q=-1;var D=-2;var F=-3;function P(e){if(z.onerror){(1,z.onerror)(e)}else{throw e}}function Y(e){if(e._state===W){if(e._domain){e._domain.enter()}g(e._value)}}function z(e){return e instanceof on?e:J(new on,e)}z.longStackSupport=false;function B(e){if(e._pending){V(e,e._op,e._pending);e._pending=null}}function C(e,n){if(e._state){return}e._state=K;e._value=n;B(e)}function G(e,n){if(e._state){return}if(t){c(n)}e._state=W;e._value=n;if(s){e._domain=process.domain}B(e)}function H(e,n){if(n._state){return}n._state=e._state;n._value=e._value;n._domain=e._domain;B(n)}function J(e,n){if(e._state){return e}if(n instanceof on){L(e,n)}else{var t=typeof n;if(t==="object"&&n!==null||t==="function"){Q(e,n)}else{C(e,n)}}return e}function L(e,n){if(n===e){G(e,new TypeError("You can't resolve a promise with itself"))}else if(n._state){H(n,e)}else{X(n,D,e)}}function Q(e,n){var t=R(e,n);if(typeof t==="function"){U(nn(e),t,n)}else{C(e,n)}}function R(e,n){try{return n.then}catch(t){G(e,t);return null}}function U(e,n,t){try{j.call(n,t,e.resolve,e.reject)}catch(r){e.reject(r)}}function V(e,n,t){if(n===q){t(e)}else if(n===D){O(e,t)}else if(n===F){for(var r=0,i=t.length;r<i;r+=2){V(e,t[r],t[r+1])}}else{t(e,n)}}function X(e,n,t){if(e._state){V(e,n,t)}else if(!e._pending){e._pending=t;e._op=n}else if(e._op===F){e._pending.push(n,t)}else{e._pending=[e._op,e._pending,n,t];e._op=F}}function Z(e,n){var r=e._domain||n._domain;t=n._trace;var i=e._state===K?n._cb:n._eb;n._cb=null;n._eb=null;n._domain=null;n._trace=null;if(i===null){H(e,n)}else if(r){if(!r._disposed){r.enter();en(n,i,e._value);r.exit()}}else{en(n,i,e._value)}}function en(e,n,t){var r;try{r=n(t)}catch(i){G(e,i);return}J(e,r)}function nn(e){var n=false;return{promise:e,resolve:function(t){if(!n){n=true;J(e,t)}},reject:function(t){if(!n){n=true;G(e,t)}}}}z.defer=tn;function tn(){return nn(new on)}z.reject=rn;function rn(e){var n=new on;G(n,e);return n}function on(){this._state=0;this._value=void 0;this._domain=null;this._cb=null;this._eb=null;this._op=0;this._pending=null;this._trace=null}on.prototype.then=function(e,n){var t=new on;t._cb=typeof e==="function"?e:null;t._eb=typeof n==="function"?n:null;if(z.longStackSupport){t._trace=r()}if(s){t._domain=process.domain}if(this._state){O(this,t)}else{X(this,D,t)}return t};on.prototype.done=function(e,n){var t=this;if(e||n){t=t.then(e,n)}t=t.then(null,P);X(t,q,Y)};on.prototype.fail=function(e){return this.then(null,e)};on.prototype.spread=function(e,n){return this.then(an).then(function(n){return k.call(e,void 0,n)},n)};on.prototype.timeout=function(e,n){var i=new on;if(this._state!==$){H(this,i)}else{var o=z.longStackSupport?r():null;var u=setTimeout(function(){t=o;G(i,new Error(n||"Timed out after "+e+" ms"))},e);X(this,q,function(e){clearTimeout(u);H(e,i)})}return i};on.prototype.delay=function(e){var n=tn();this.then(function(r){var i=t;setTimeout(function(){t=i;n.resolve(r)},e)},n.reject);return n.promise};on.prototype.all=function(){return this.then(an)};on.prototype.allSettled=function(){return this.then(un)};on.prototype.inspect=function(){switch(this._state){case $:return{state:"pending"};case K:return{state:"fulfilled",value:this._value};case W:return{state:"rejected",reason:this._value};default:throw new TypeError("invalid state")}};on.prototype.nodeify=function(e){if(e){this.done(function(n){e(null,n)},e);return void 0}else{return this}};z.allSettled=un;function un(e){var n=new on;var t=e.length;if(typeof t!=="number"){G(n,new TypeError("input not array-like"));return n}var r=new Array(t);var i=t;function o(e,t){r[t]=e.inspect();if(--i===0){C(n,r)}}for(var u=0;u<t;++u){X(z(e[u]),u,o)}if(i===0){C(n,r)}return n}z.all=an;function an(e){var n=new on;var t=e.length;if(typeof t!=="number"){G(n,new TypeError("input not array-like"));return n}var r=new Array(t);var i=t;function o(e,t){if(r!==null){if(e._state===W){r=null;H(e,n)}else{r[t]=e._value;if(--i===0){C(n,r)}}}}for(var u=0;u<t;++u){X(z(e[u]),u,o)}if(i===0){C(n,r)}return n}z.spread=fn;function fn(e,n,t){return an(e).then(function(e){return k.call(n,void 0,e)},t)}z.promised=ln;function ln(e){function n(n){return j.apply(e,n)}return function(){var e=arguments.length;var t=new Array(e+1);t[0]=this;for(var r=0;r<e;++r){t[r+1]=arguments[r]}return an(t).then(n)}}z.denodeify=cn;function cn(e){return function(){var n=arguments.length;var t=new Array(n+1);for(var r=0;r<n;++r){t[r]=arguments[r]}t[r]=i;function i(e,n){if(e){o.reject(e)}else{o.resolve(n)}}var o=tn();k.call(e,this,t);return o.promise}}z.onerror=null;z.nextTick=function pn(e){var n=new on;C(n,e);n=n.then(sn);X(n,q,Y)};function sn(e){e.call()}var vn=o();return z}); |
{ | ||
"name": "p-promise", | ||
"version": "0.3.8", | ||
"version": "0.4.0", | ||
"description": "A simple Promises/A+ library.", | ||
@@ -16,6 +16,8 @@ "author": "Robert Katić <robert.katic@gmail.com> (https://github.com/rkatic)", | ||
"scripts": { | ||
"posttest": "uglifyjs p.js -o p.min.js -m", | ||
"test-own": "mocha -R spec -s 100 test/test.js", | ||
"test-aplus": "promises-aplus-tests test/adapter", | ||
"test": "promises-aplus-tests test/adapter --reporter dot && mocha -s 200 test/test.js" | ||
"minify": "uglifyjs p.js -o p.min.js -m", | ||
"test-own": "mocha --reporter dot -s 200 test/test.js", | ||
"test-own-trace": "node -allow-natives-syntax test/test-and-trace.js", | ||
"test-aplus": "promises-aplus-tests test/adapter --reporter dot", | ||
"test": "npm run test-aplus && npm run test-own", | ||
"test-local": "npm run test-aplus && npm run test-own-trace && npm run minify" | ||
}, | ||
@@ -22,0 +24,0 @@ "keywords": [ |
@@ -18,3 +18,3 @@ [![Build Status](https://travis-ci.org/rkatic/p.png?branch=master)](https://travis-ci.org/rkatic/p) | ||
- Simple. | ||
- [Fast](http://jsperf.com/davy-jones-benchmark/29). | ||
- [Fast](http://jsperf.com/davy-jones-benchmark/32). | ||
@@ -46,1 +46,2 @@ ##API | ||
- `promise.nodeify(nodeback)` :new: | ||
- `promise.denodeify(aFunction)` :new: |
@@ -13,1 +13,3 @@ var P = require ('./p'); | ||
} | ||
// node --trace_opt --trace_deopt run.js |
134
test/test.js
(function(){ | ||
"use strict"; | ||
var opt_tracing = typeof TRACE_FUNCTIONS !== "undefined"; | ||
if ( typeof P === "undefined" ) { | ||
global.P = require("../p"); | ||
global.P = require(opt_tracing ? "./p" : "../p"); | ||
global.expect = require("expect.js"); | ||
require("mocha"); | ||
//require("mocha"); | ||
} | ||
if ( opt_tracing ) { | ||
TRACE_FUNCTIONS.stopAdding(); | ||
beforeEach(function() { | ||
TRACE_FUNCTIONS.optimize(); | ||
}); | ||
afterEach(function() { | ||
TRACE_FUNCTIONS.optimize(); | ||
}); | ||
} | ||
var isNodeJS = typeof process === "object" && process && | ||
@@ -18,7 +32,54 @@ ({}).toString.call(process) === "[object process]"; | ||
function thenableSyncFulfillment( value ) { | ||
return { | ||
then: function( cb, eb ) { | ||
cb( value ); | ||
} | ||
}; | ||
} | ||
function thenableSyncRejection( reason ) { | ||
return { | ||
then: function( cb, eb ) { | ||
eb( reason ); | ||
} | ||
}; | ||
} | ||
function thenableFulfillment( value ) { | ||
return { | ||
then: function( cb, eb ) { | ||
setTimeout(function() { | ||
cb( value ); | ||
}, 0) | ||
} | ||
}; | ||
} | ||
function thenableRejection( reason ) { | ||
return { | ||
then: function( cb, eb ) { | ||
setTimeout(function() { | ||
eb( reason ); | ||
}, 0) | ||
} | ||
}; | ||
} | ||
var VALUES = ["", true, false, 0, 1, 2, -1, -2, {}, [], {x: 1}, [1,2,3], null, void 0, new Error()]; | ||
VALUES[ VALUES.length + 1 ] = "sparse"; | ||
VALUES.length++; | ||
var FULLFILMENTS = VALUES.concat( | ||
VALUES.map( P ), | ||
VALUES.map( thenableFulfillment ), | ||
VALUES.map( thenableSyncFulfillment ) | ||
); | ||
var REJECTIONS = [].concat( | ||
VALUES.map( P.reject ), | ||
VALUES.map( thenableRejection ), | ||
VALUES.map( thenableSyncRejection ) | ||
); | ||
var FULLFILMENTS_AND_REJECTIONS = FULLFILMENTS.concat( REJECTIONS ); | ||
function map( array, f ) { | ||
@@ -41,3 +102,3 @@ var array2 = new Array(array.length|0); | ||
it("should return a promise", function() { | ||
map(VALUES, function( value ) { | ||
map(FULLFILMENTS_AND_REJECTIONS, function( value ) { | ||
expect( P(value).constructor.name ).to.be("Promise"); | ||
@@ -102,3 +163,3 @@ }); | ||
it("resolves when passed an sparse array", function() { | ||
it("resolves when passed an array", function() { | ||
var toResolve = P.defer(); | ||
@@ -121,3 +182,3 @@ var array = VALUES.concat( toResolve.promise ); | ||
toReject.reject( theReason ); | ||
var array = VALUES.concat( toReject.promise ) | ||
var array = FULLFILMENTS.concat( toReject.promise ) | ||
@@ -130,3 +191,3 @@ return P.all( array ) | ||
var toRejectLater = P.defer(); | ||
var array = VALUES.concat( toRejectLater.promise ); | ||
var array = FULLFILMENTS.concat( toRejectLater.promise ); | ||
var promise = P.all( array ); | ||
@@ -142,2 +203,27 @@ toRejectLater.reject( theReason ); | ||
describe("allSettled", function() { | ||
it("resolves when passed an empty array", function() { | ||
return P.allSettled([]); | ||
}); | ||
it("resolves when passed an array", function() { | ||
var array = FULLFILMENTS_AND_REJECTIONS; | ||
var promise = P.allSettled( array ); | ||
return promise.then(function( settled ) { | ||
for ( var i = 0; i < settled.length; ++i ) { | ||
var expectedValue = VALUES[ i % VALUES.length ]; | ||
if ( i < FULLFILMENTS.length ) { | ||
expect( settled[i] ).to.be.eql( {state: "fulfilled", value: expectedValue} ); | ||
} else { | ||
expect( settled[i] ).to.be.eql( {state: "rejected", reason: expectedValue} ); | ||
} | ||
} | ||
}); | ||
}); | ||
}); | ||
describe("spread", function() { | ||
@@ -345,2 +431,34 @@ | ||
describe("denodeify", function() { | ||
var fullfillment = P.denodeify(function( a, b, c, d, callback ) { | ||
callback( a + b + c + d ); | ||
}); | ||
it("should fulfill if no error", function() { | ||
var f = P.denodeify(function( a, b, c, d, callback ) { | ||
callback( null, a + b + c + d ); | ||
}); | ||
return f( 1, 2, 3, 4 ).then(function( value ) { | ||
expect( value ).to.be( 10 ); | ||
}); | ||
}); | ||
it("should reject on error", function() { | ||
var theError = new Error(); | ||
var f = P.denodeify(function( a, b, c, d, callback ) { | ||
callback( theError ); | ||
}); | ||
return f( 1, 2, 3, 4 ).then(fail, function( reason ) { | ||
expect( reason ).to.be( theError ); | ||
}); | ||
}); | ||
}); | ||
if ( isNodeJS && !/v0\.8\./.test(process.version) ) describe("domain", function() { | ||
@@ -347,0 +465,0 @@ |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
2177431
31
2799
46
8