449 lines
13 KiB
Plaintext
449 lines
13 KiB
Plaintext
|
#!/usr/bin/env node
|
||
|
|
||
|
/**
|
||
|
* This tiny wrapper file checks for known node flags and appends them
|
||
|
* when found, before invoking the "real" _babel-node(1) executable.
|
||
|
*/
|
||
|
|
||
|
var args = [__dirname + "/_babel-node"];
|
||
|
|
||
|
var babelArgs = process.argv.slice(2);
|
||
|
var userArgs;
|
||
|
|
||
|
// separate node arguments from script arguments
|
||
|
var argSeparator = babelArgs.indexOf("--");
|
||
|
if (argSeparator > -1) {
|
||
|
userArgs = babelArgs.slice(argSeparator); // including the --
|
||
|
babelArgs = babelArgs.slice(0, argSeparator);
|
||
|
}
|
||
|
|
||
|
babelArgs.forEach(function(arg){
|
||
|
var flag = arg.split("=")[0];
|
||
|
|
||
|
switch (flag) {
|
||
|
case "-d":
|
||
|
args.unshift("--debug");
|
||
|
break;
|
||
|
|
||
|
case "debug":
|
||
|
case "--debug":
|
||
|
case "--debug-brk":
|
||
|
args.unshift(arg);
|
||
|
break;
|
||
|
|
||
|
case "-gc":
|
||
|
case "--expose-gc":
|
||
|
args.unshift("--expose-gc");
|
||
|
break;
|
||
|
|
||
|
case "--use_strict":
|
||
|
case "--es_staging":
|
||
|
case "--harmony":
|
||
|
case "--harmony_shipping":
|
||
|
case "--harmony_modules":
|
||
|
case "--harmony_arrays":
|
||
|
case "--harmony_array_includes":
|
||
|
case "--harmony_regexps":
|
||
|
case "--harmony_arrow_functions":
|
||
|
case "--harmony_proxies":
|
||
|
case "--harmony_sloppy":
|
||
|
case "--harmony_unicode":
|
||
|
case "--harmony_tostring":
|
||
|
case "--harmony_numeric_literals":
|
||
|
case "--harmony_strings":
|
||
|
case "--harmony_scoping":
|
||
|
case "--harmony_classes":
|
||
|
case "--harmony_object_literals":
|
||
|
case "--harmony_templates":
|
||
|
case "--compiled_keyed_generic_loads":
|
||
|
case "--pretenuring_call_new":
|
||
|
case "--allocation_site_pretenuring":
|
||
|
case "--trace_pretenuring":
|
||
|
case "--trace_pretenuring_statistics":
|
||
|
case "--track_fields":
|
||
|
case "--track_double_fields":
|
||
|
case "--track_heap_object_fields":
|
||
|
case "--track_computed_fields":
|
||
|
case "--track_field_types":
|
||
|
case "--smi_binop":
|
||
|
case "--vector_ics":
|
||
|
case "--optimize_for_size":
|
||
|
case "--unbox_double_arrays":
|
||
|
case "--string_slices":
|
||
|
case "--crankshaft":
|
||
|
case "--hydrogen_filter":
|
||
|
case "--use_gvn":
|
||
|
case "--gvn_iterations":
|
||
|
case "--use_canonicalizing":
|
||
|
case "--use_inlining":
|
||
|
case "--use_escape_analysis":
|
||
|
case "--use_allocation_folding":
|
||
|
case "--use_local_allocation_folding":
|
||
|
case "--use_write_barrier_elimination":
|
||
|
case "--max_inlining_levels":
|
||
|
case "--max_inlined_source_size":
|
||
|
case "--max_inlined_nodes":
|
||
|
case "--max_inlined_nodes_cumulative":
|
||
|
case "--loop_invariant_code_motion":
|
||
|
case "--fast_math":
|
||
|
case "--collect_megamorphic_maps_from_stub_cache":
|
||
|
case "--hydrogen_stats":
|
||
|
case "--trace_check_elimination":
|
||
|
case "--trace_hydrogen":
|
||
|
case "--trace_hydrogen_filter":
|
||
|
case "--trace_hydrogen_stubs":
|
||
|
case "--trace_hydrogen_file":
|
||
|
case "--trace_phase":
|
||
|
case "--trace_inlining":
|
||
|
case "--trace_load_elimination":
|
||
|
case "--trace_store_elimination":
|
||
|
case "--trace_alloc":
|
||
|
case "--trace_all_uses":
|
||
|
case "--trace_range":
|
||
|
case "--trace_gvn":
|
||
|
case "--trace_representation":
|
||
|
case "--trace_removable_simulates":
|
||
|
case "--trace_escape_analysis":
|
||
|
case "--trace_allocation_folding":
|
||
|
case "--trace_track_allocation_sites":
|
||
|
case "--trace_migration":
|
||
|
case "--trace_generalization":
|
||
|
case "--stress_pointer_maps":
|
||
|
case "--stress_environments":
|
||
|
case "--deopt_every_n_times":
|
||
|
case "--deopt_every_n_garbage_collections":
|
||
|
case "--print_deopt_stress":
|
||
|
case "--trap_on_deopt":
|
||
|
case "--trap_on_stub_deopt":
|
||
|
case "--deoptimize_uncommon_cases":
|
||
|
case "--polymorphic_inlining":
|
||
|
case "--use_osr":
|
||
|
case "--array_bounds_checks_elimination":
|
||
|
case "--trace_bce":
|
||
|
case "--array_bounds_checks_hoisting":
|
||
|
case "--array_index_dehoisting":
|
||
|
case "--analyze_environment_liveness":
|
||
|
case "--load_elimination":
|
||
|
case "--check_elimination":
|
||
|
case "--store_elimination":
|
||
|
case "--dead_code_elimination":
|
||
|
case "--fold_constants":
|
||
|
case "--trace_dead_code_elimination":
|
||
|
case "--unreachable_code_elimination":
|
||
|
case "--trace_osr":
|
||
|
case "--stress_runs":
|
||
|
case "--lookup_sample_by_shared":
|
||
|
case "--cache_optimized_code":
|
||
|
case "--flush_optimized_code_cache":
|
||
|
case "--inline_construct":
|
||
|
case "--inline_arguments":
|
||
|
case "--inline_accessors":
|
||
|
case "--escape_analysis_iterations":
|
||
|
case "--optimize_for_in":
|
||
|
case "--concurrent_recompilation":
|
||
|
case "--job_based_recompilation":
|
||
|
case "--trace_concurrent_recompilation":
|
||
|
case "--concurrent_recompilation_queue_length":
|
||
|
case "--concurrent_recompilation_delay":
|
||
|
case "--block_concurrent_recompilation":
|
||
|
case "--concurrent_osr":
|
||
|
case "--omit_map_checks_for_leaf_maps":
|
||
|
case "--turbo_filter":
|
||
|
case "--trace_turbo":
|
||
|
case "--trace_turbo_graph":
|
||
|
case "--trace_turbo_cfg_file":
|
||
|
case "--trace_turbo_types":
|
||
|
case "--trace_turbo_scheduler":
|
||
|
case "--trace_turbo_reduction":
|
||
|
case "--trace_turbo_jt":
|
||
|
case "--turbo_asm":
|
||
|
case "--turbo_verify":
|
||
|
case "--turbo_stats":
|
||
|
case "--turbo_types":
|
||
|
case "--turbo_source_positions":
|
||
|
case "--context_specialization":
|
||
|
case "--turbo_deoptimization":
|
||
|
case "--turbo_inlining":
|
||
|
case "--turbo_inlining_intrinsics":
|
||
|
case "--trace_turbo_inlining":
|
||
|
case "--loop_assignment_analysis":
|
||
|
case "--turbo_profiling":
|
||
|
case "--turbo_reuse_spill_slots":
|
||
|
case "--turbo_delay_ssa_decon":
|
||
|
case "--turbo_move_optimization":
|
||
|
case "--turbo_jt":
|
||
|
case "--typed_array_max_size_in_heap":
|
||
|
case "--frame_count":
|
||
|
case "--interrupt_budget":
|
||
|
case "--type_info_threshold":
|
||
|
case "--generic_ic_threshold":
|
||
|
case "--self_opt_count":
|
||
|
case "--trace_opt_verbose":
|
||
|
case "--debug_code":
|
||
|
case "--code_comments":
|
||
|
case "--enable_sse3":
|
||
|
case "--enable_sse4_1":
|
||
|
case "--enable_sahf":
|
||
|
case "--enable_avx":
|
||
|
case "--enable_fma3":
|
||
|
case "--enable_vfp3":
|
||
|
case "--enable_armv7":
|
||
|
case "--enable_armv8":
|
||
|
case "--enable_neon":
|
||
|
case "--enable_sudiv":
|
||
|
case "--enable_mls":
|
||
|
case "--enable_movw_movt":
|
||
|
case "--enable_unaligned_accesses":
|
||
|
case "--enable_32dregs":
|
||
|
case "--enable_vldr_imm":
|
||
|
case "--force_long_branches":
|
||
|
case "--expose_natives_as":
|
||
|
case "--expose_debug_as":
|
||
|
case "--expose_free_buffer":
|
||
|
case "--expose_gc":
|
||
|
case "--expose_gc_as":
|
||
|
case "--expose_externalize_string":
|
||
|
case "--expose_trigger_failure":
|
||
|
case "--stack_trace_limit":
|
||
|
case "--builtins_in_stack_traces":
|
||
|
case "--disable_native_files":
|
||
|
case "--inline_new":
|
||
|
case "--trace_codegen":
|
||
|
case "--trace":
|
||
|
case "--mask_constants_with_cookie":
|
||
|
case "--lazy":
|
||
|
case "--trace_opt":
|
||
|
case "--trace_opt_stats":
|
||
|
case "--opt":
|
||
|
case "--always_opt":
|
||
|
case "--always_osr":
|
||
|
case "--prepare_always_opt":
|
||
|
case "--trace_deopt":
|
||
|
case "--trace_stub_failures":
|
||
|
case "--serialize_toplevel":
|
||
|
case "--serialize_inner":
|
||
|
case "--trace_serializer":
|
||
|
case "--min_preparse_length":
|
||
|
case "--max_opt_count":
|
||
|
case "--compilation_cache":
|
||
|
case "--cache_prototype_transitions":
|
||
|
case "--cpu_profiler_sampling_interval":
|
||
|
case "--trace_debug_json":
|
||
|
case "--trace_js_array_abuse":
|
||
|
case "--trace_external_array_abuse":
|
||
|
case "--trace_array_abuse":
|
||
|
case "--enable_liveedit":
|
||
|
case "--hard_abort":
|
||
|
case "--stack_size":
|
||
|
case "--max_stack_trace_source_length":
|
||
|
case "--always_inline_smi_code":
|
||
|
case "--min_semi_space_size":
|
||
|
case "--target_semi_space_size":
|
||
|
case "--max_semi_space_size":
|
||
|
case "--semi_space_growth_factor":
|
||
|
case "--experimental_new_space_growth_heuristic":
|
||
|
case "--max_old_space_size":
|
||
|
case "--initial_old_space_size":
|
||
|
case "--max_executable_size":
|
||
|
case "--gc_global":
|
||
|
case "--gc_interval":
|
||
|
case "--trace_gc":
|
||
|
case "--trace_gc_nvp":
|
||
|
case "--trace_gc_ignore_scavenger":
|
||
|
case "--trace_idle_notification":
|
||
|
case "--trace_idle_notification_verbose":
|
||
|
case "--print_cumulative_gc_stat":
|
||
|
case "--print_max_heap_committed":
|
||
|
case "--trace_gc_verbose":
|
||
|
case "--trace_fragmentation":
|
||
|
case "--collect_maps":
|
||
|
case "--weak_embedded_maps_in_optimized_code":
|
||
|
case "--weak_embedded_objects_in_optimized_code":
|
||
|
case "--flush_code":
|
||
|
case "--flush_code_incrementally":
|
||
|
case "--trace_code_flushing":
|
||
|
case "--age_code":
|
||
|
case "--incremental_marking":
|
||
|
case "--incremental_marking_steps":
|
||
|
case "--concurrent_sweeping":
|
||
|
case "--trace_incremental_marking":
|
||
|
case "--track_gc_object_stats":
|
||
|
case "--heap_profiler_trace_objects":
|
||
|
case "--use_idle_notification":
|
||
|
case "--use_ic":
|
||
|
case "--trace_ic":
|
||
|
case "--native_code_counters":
|
||
|
case "--always_compact":
|
||
|
case "--never_compact":
|
||
|
case "--compact_code_space":
|
||
|
case "--incremental_code_compaction":
|
||
|
case "--cleanup_code_caches_at_gc":
|
||
|
case "--use_marking_progress_bar":
|
||
|
case "--zap_code_space":
|
||
|
case "--random_seed":
|
||
|
case "--trace_weak_arrays":
|
||
|
case "--track_prototype_users":
|
||
|
case "--use_verbose_printer":
|
||
|
case "--allow_natives_syntax":
|
||
|
case "--trace_parse":
|
||
|
case "--trace_sim":
|
||
|
case "--debug_sim":
|
||
|
case "--check_icache":
|
||
|
case "--stop_sim_at":
|
||
|
case "--sim_stack_alignment":
|
||
|
case "--sim_stack_size":
|
||
|
case "--log_regs_modified":
|
||
|
case "--log_colour":
|
||
|
case "--ignore_asm_unimplemented_break":
|
||
|
case "--trace_sim_messages":
|
||
|
case "--stack_trace_on_illegal":
|
||
|
case "--abort_on_uncaught_exception":
|
||
|
case "--randomize_hashes":
|
||
|
case "--hash_seed":
|
||
|
case "--profile_deserialization":
|
||
|
case "--regexp_optimization":
|
||
|
case "--testing_bool_flag":
|
||
|
case "--testing_maybe_bool_flag":
|
||
|
case "--testing_int_flag":
|
||
|
case "--testing_float_flag":
|
||
|
case "--testing_string_flag":
|
||
|
case "--testing_prng_seed":
|
||
|
case "--testing_serialization_file":
|
||
|
case "--startup_blob":
|
||
|
case "--profile_hydrogen_code_stub_compilation":
|
||
|
case "--predictable":
|
||
|
case "--help":
|
||
|
case "--dump_counters":
|
||
|
case "--debugger":
|
||
|
case "--map_counters":
|
||
|
case "--js_arguments":
|
||
|
case "--gdbjit":
|
||
|
case "--gdbjit_full":
|
||
|
case "--gdbjit_dump":
|
||
|
case "--gdbjit_dump_filter":
|
||
|
case "--force_marking_deque_overflows":
|
||
|
case "--stress_compaction":
|
||
|
case "--log":
|
||
|
case "--log_all":
|
||
|
case "--log_api":
|
||
|
case "--log_code":
|
||
|
case "--log_gc":
|
||
|
case "--log_handles":
|
||
|
case "--log_snapshot_positions":
|
||
|
case "--log_suspect":
|
||
|
case "--prof":
|
||
|
case "--prof_browser_mode":
|
||
|
case "--log_regexp":
|
||
|
case "--logfile":
|
||
|
case "--logfile_per_isolate":
|
||
|
case "--ll_prof":
|
||
|
case "--perf_basic_prof":
|
||
|
case "--perf_jit_prof":
|
||
|
case "--gc_fake_mmap":
|
||
|
case "--log_internal_timer_events":
|
||
|
case "--log_timer_events":
|
||
|
case "--log_instruction_stats":
|
||
|
case "--log_instruction_file":
|
||
|
case "--log_instruction_period":
|
||
|
case "--redirect_code_traces":
|
||
|
case "--redirect_code_traces_to":
|
||
|
case "--hydrogen_track_positions":
|
||
|
case "--trace_elements_transitions":
|
||
|
case "--trace_creation_allocation_sites":
|
||
|
case "--print_code_stubs":
|
||
|
case "--test_secondary_stub_cache":
|
||
|
case "--test_primary_stub_cache":
|
||
|
case "--print_code":
|
||
|
case "--print_opt_code":
|
||
|
case "--print_unopt_code":
|
||
|
case "--print_code_verbose":
|
||
|
case "--print_builtin_code":
|
||
|
case "--sodium":
|
||
|
case "--print_all_code":
|
||
|
case "--es5_readonly":
|
||
|
case "--es52_globals":
|
||
|
case "--harmony_typeof":
|
||
|
case "--harmony_collections":
|
||
|
case "--packed_arrays":
|
||
|
case "--smi_only_arrays":
|
||
|
case "--clever_optimizations":
|
||
|
case "--use_range":
|
||
|
case "--eliminate_dead_phis":
|
||
|
case "--optimize_closures":
|
||
|
case "--loop_weight":
|
||
|
case "--opt_safe_uint32_operations":
|
||
|
case "--parallel_recompilation":
|
||
|
case "--trace_parallel_recompilation":
|
||
|
case "--parallel_recompilation_queue_length":
|
||
|
case "--experimental_profiler":
|
||
|
case "--watch_ic_patching":
|
||
|
case "--self_optimization":
|
||
|
case "--direct_self_opt":
|
||
|
case "--retry_self_opt":
|
||
|
case "--count_based_interrupts":
|
||
|
case "--interrupt_at_exit":
|
||
|
case "--weighted_back_edges":
|
||
|
case "--debug_code (generate extra code":
|
||
|
case "--enable_sse2":
|
||
|
case "--enable_cmov":
|
||
|
case "--enable_rdtsc":
|
||
|
case "--enable_vfp2":
|
||
|
case "--enable_fpu":
|
||
|
case "--stack_trace_on_abort":
|
||
|
case "--always_full_compiler":
|
||
|
case "--debugger_auto_break":
|
||
|
case "--break_on_abort":
|
||
|
case "--max_new_space_size":
|
||
|
case "--trace_external_memory":
|
||
|
case "--lazy_sweeping":
|
||
|
case "--trace_exception":
|
||
|
case "--preallocate_message_memory":
|
||
|
case "--preemption":
|
||
|
case "--extra_code":
|
||
|
case "--remote_debugger":
|
||
|
case "--debugger_agent":
|
||
|
case "--debugger_port":
|
||
|
case "--debug_compile_events":
|
||
|
case "--debug_script_collected_events":
|
||
|
case "--gdbjit":
|
||
|
case "--log_runtime":
|
||
|
case "--prof_auto":
|
||
|
case "--prof_lazy":
|
||
|
case "--sliding_state_window":
|
||
|
args.unshift(arg);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
if (arg.indexOf("--trace") === 0) {
|
||
|
args.unshift(arg);
|
||
|
} else {
|
||
|
args.push(arg);
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// append arguments passed after --
|
||
|
if (argSeparator > -1) {
|
||
|
args = args.concat(userArgs);
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
var kexec = require("kexec");
|
||
|
kexec(process.argv[0], args);
|
||
|
} catch (err) {
|
||
|
if (err.code !== "MODULE_NOT_FOUND") throw err;
|
||
|
|
||
|
var child_process = require("child_process");
|
||
|
var proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" });
|
||
|
proc.on("exit", function (code, signal) {
|
||
|
process.on("exit", function () {
|
||
|
if (signal) {
|
||
|
process.kill(process.pid, signal);
|
||
|
} else {
|
||
|
process.exit(code);
|
||
|
}
|
||
|
})
|
||
|
});
|
||
|
}
|