| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a162251 commit 7cbbd68
6 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -371,7 +371,8 @@ | |||
| 371 | 371 | 'src/node_perf.cc', | |
| 372 | 372 | 'src/node_platform.cc', | |
| 373 | 373 | 'src/node_postmortem_metadata.cc', | |
| 374 | - 'src/node_process.cc', | ||
| 374 | + 'src/node_process_methods.cc', | ||
| 375 | + 'src/node_process_object.cc', | ||
| 375 | 376 | 'src/node_serdes.cc', | |
| 376 | 377 | 'src/node_stat_watcher.cc', | |
| 377 | 378 | 'src/node_symbols.cc', | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -22,7 +22,6 @@ using v8::Context; | |||
| 22 | 22 | using v8::EmbedderGraph; | |
| 23 | 23 | using v8::External; | |
| 24 | 24 | using v8::Function; | |
| 25 | - using v8::FunctionTemplate; | ||
| 26 | 25 | using v8::HandleScope; | |
| 27 | 26 | using v8::Integer; | |
| 28 | 27 | using v8::Isolate; | |
@@ -339,17 +338,9 @@ void Environment::Start(const std::vector<std::string>& args, | |||
| 339 | 338 | StartProfilerIdleNotifier(); | |
| 340 | 339 | } | |
| 341 | 340 | ||
| 342 | - auto process_template = FunctionTemplate::New(isolate()); | ||
| 343 | - process_template->SetClassName(FIXED_ONE_BYTE_STRING(isolate(), "process")); | ||
| 344 | - | ||
| 345 | - auto process_object = process_template->GetFunction(context()) | ||
| 346 | - .ToLocalChecked() | ||
| 347 | - ->NewInstance(context()) | ||
| 348 | - .ToLocalChecked(); | ||
| 341 | + Local<Object> process_object = CreateProcessObject(this, args, exec_args); | ||
| 349 | 342 | set_process_object(process_object); | |
| 350 | 343 | ||
| 351 | - SetupProcessObject(this, args, exec_args); | ||
| 352 | - | ||
| 353 | 344 | static uv_once_t init_once = UV_ONCE_INIT; | |
| 354 | 345 | uv_once(&init_once, InitThreadLocalOnce); | |
| 355 | 346 | uv_key_set(&thread_local_env, this); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -124,14 +124,12 @@ using v8::MaybeLocal; | |||
| 124 | 124 | using v8::Message; | |
| 125 | 125 | using v8::MicrotasksPolicy; | |
| 126 | 126 | using v8::NewStringType; | |
| 127 | - using v8::None; | ||
| 128 | 127 | using v8::Nothing; | |
| 129 | 128 | using v8::Object; | |
| 130 | 129 | using v8::ObjectTemplate; | |
| 131 | 130 | using v8::Script; | |
| 132 | 131 | using v8::ScriptOrigin; | |
| 133 | 132 | using v8::SealHandleScope; | |
| 134 | - using v8::SideEffectType; | ||
| 135 | 133 | using v8::String; | |
| 136 | 134 | using v8::TracingController; | |
| 137 | 135 | using v8::Undefined; | |
@@ -690,230 +688,6 @@ static void OnMessage(Local<Message> message, Local<Value> error) { | |||
| 690 | 688 | } | |
| 691 | 689 | } | |
| 692 | 690 | ||
| 693 | - void SetupProcessObject(Environment* env, | ||
| 694 | - const std::vector<std::string>& args, | ||
| 695 | - const std::vector<std::string>& exec_args) { | ||
| 696 | - Isolate* isolate = env->isolate(); | ||
| 697 | - HandleScope scope(isolate); | ||
| 698 | - Local<Context> context = env->context(); | ||
| 699 | - | ||
| 700 | - Local<Object> process = env->process_object(); | ||
| 701 | - | ||
| 702 | - auto title_string = FIXED_ONE_BYTE_STRING(env->isolate(), "title"); | ||
| 703 | - CHECK(process->SetAccessor( | ||
| 704 | - env->context(), | ||
| 705 | - title_string, | ||
| 706 | - ProcessTitleGetter, | ||
| 707 | - env->is_main_thread() ? ProcessTitleSetter : nullptr, | ||
| 708 | - env->as_external(), | ||
| 709 | - DEFAULT, | ||
| 710 | - None, | ||
| 711 | - SideEffectType::kHasNoSideEffect).FromJust()); | ||
| 712 | - | ||
| 713 | - // process.version | ||
| 714 | - READONLY_PROPERTY(process, | ||
| 715 | - "version", | ||
| 716 | - FIXED_ONE_BYTE_STRING(env->isolate(), NODE_VERSION)); | ||
| 717 | - | ||
| 718 | - // process.versions | ||
| 719 | - Local<Object> versions = Object::New(env->isolate()); | ||
| 720 | - READONLY_PROPERTY(process, "versions", versions); | ||
| 721 | - | ||
| 722 | - #define V(key) \ | ||
| 723 | - if (!per_process::metadata.versions.key.empty()) { \ | ||
| 724 | - READONLY_STRING_PROPERTY( \ | ||
| 725 | - versions, #key, per_process::metadata.versions.key); \ | ||
| 726 | - } | ||
| 727 | - NODE_VERSIONS_KEYS(V) | ||
| 728 | - #undef V | ||
| 729 | - | ||
| 730 | - // process.arch | ||
| 731 | - READONLY_STRING_PROPERTY(process, "arch", per_process::metadata.arch); | ||
| 732 | - | ||
| 733 | - // process.platform | ||
| 734 | - READONLY_STRING_PROPERTY(process, "platform", per_process::metadata.platform); | ||
| 735 | - | ||
| 736 | - // process.release | ||
| 737 | - Local<Object> release = Object::New(env->isolate()); | ||
| 738 | - READONLY_PROPERTY(process, "release", release); | ||
| 739 | - READONLY_STRING_PROPERTY(release, "name", per_process::metadata.release.name); | ||
| 740 | - #if NODE_VERSION_IS_LTS | ||
| 741 | - READONLY_STRING_PROPERTY(release, "lts", per_process::metadata.release.lts); | ||
| 742 | - #endif // NODE_VERSION_IS_LTS | ||
| 743 | - | ||
| 744 | - #ifdef NODE_HAS_RELEASE_URLS | ||
| 745 | - READONLY_STRING_PROPERTY( | ||
| 746 | - release, "sourceUrl", per_process::metadata.release.source_url); | ||
| 747 | - READONLY_STRING_PROPERTY( | ||
| 748 | - release, "headersUrl", per_process::metadata.release.headers_url); | ||
| 749 | - #ifdef _WIN32 | ||
| 750 | - READONLY_STRING_PROPERTY( | ||
| 751 | - release, "libUrl", per_process::metadata.release.lib_url); | ||
| 752 | - #endif // _WIN32 | ||
| 753 | - #endif // NODE_HAS_RELEASE_URLS | ||
| 754 | - | ||
| 755 | - // process.argv | ||
| 756 | - process->Set(env->context(), | ||
| 757 | - FIXED_ONE_BYTE_STRING(env->isolate(), "argv"), | ||
| 758 | - ToV8Value(env->context(), args).ToLocalChecked()).FromJust(); | ||
| 759 | - | ||
| 760 | - // process.execArgv | ||
| 761 | - process->Set(env->context(), | ||
| 762 | - FIXED_ONE_BYTE_STRING(env->isolate(), "execArgv"), | ||
| 763 | - ToV8Value(env->context(), exec_args) | ||
| 764 | - .ToLocalChecked()).FromJust(); | ||
| 765 | - | ||
| 766 | - // create process.env | ||
| 767 | - process | ||
| 768 | - ->Set(env->context(), | ||
| 769 | - FIXED_ONE_BYTE_STRING(env->isolate(), "env"), | ||
| 770 | - CreateEnvVarProxy(context, isolate, env->as_external())) | ||
| 771 | - .FromJust(); | ||
| 772 | - | ||
| 773 | - READONLY_PROPERTY(process, "pid", | ||
| 774 | - Integer::New(env->isolate(), uv_os_getpid())); | ||
| 775 | - | ||
| 776 | - CHECK(process->SetAccessor(env->context(), | ||
| 777 | - FIXED_ONE_BYTE_STRING(env->isolate(), "ppid"), | ||
| 778 | - GetParentProcessId).FromJust()); | ||
| 779 | - | ||
| 780 | - // -e, --eval | ||
| 781 | - // TODO(addaleax): Remove this. | ||
| 782 | - if (env->options()->has_eval_string) { | ||
| 783 | - READONLY_PROPERTY(process, | ||
| 784 | - "_eval", | ||
| 785 | - String::NewFromUtf8( | ||
| 786 | - env->isolate(), | ||
| 787 | - env->options()->eval_string.c_str(), | ||
| 788 | - NewStringType::kNormal).ToLocalChecked()); | ||
| 789 | - } | ||
| 790 | - | ||
| 791 | - // -p, --print | ||
| 792 | - // TODO(addaleax): Remove this. | ||
| 793 | - if (env->options()->print_eval) { | ||
| 794 | - READONLY_PROPERTY(process, "_print_eval", True(env->isolate())); | ||
| 795 | - } | ||
| 796 | - | ||
| 797 | - // -c, --check | ||
| 798 | - // TODO(addaleax): Remove this. | ||
| 799 | - if (env->options()->syntax_check_only) { | ||
| 800 | - READONLY_PROPERTY(process, "_syntax_check_only", True(env->isolate())); | ||
| 801 | - } | ||
| 802 | - | ||
| 803 | - // -i, --interactive | ||
| 804 | - // TODO(addaleax): Remove this. | ||
| 805 | - if (env->options()->force_repl) { | ||
| 806 | - READONLY_PROPERTY(process, "_forceRepl", True(env->isolate())); | ||
| 807 | - } | ||
| 808 | - | ||
| 809 | - // -r, --require | ||
| 810 | - // TODO(addaleax): Remove this. | ||
| 811 | - const std::vector<std::string>& preload_modules = | ||
| 812 | - env->options()->preload_modules; | ||
| 813 | - if (!preload_modules.empty()) { | ||
| 814 | - READONLY_PROPERTY(process, | ||
| 815 | - "_preload_modules", | ||
| 816 | - ToV8Value(env->context(), preload_modules) | ||
| 817 | - .ToLocalChecked()); | ||
| 818 | - } | ||
| 819 | - | ||
| 820 | - // --no-deprecation | ||
| 821 | - if (env->options()->no_deprecation) { | ||
| 822 | - READONLY_PROPERTY(process, "noDeprecation", True(env->isolate())); | ||
| 823 | - } | ||
| 824 | - | ||
| 825 | - // --no-warnings | ||
| 826 | - if (env->options()->no_warnings) { | ||
| 827 | - READONLY_PROPERTY(process, "noProcessWarnings", True(env->isolate())); | ||
| 828 | - } | ||
| 829 | - | ||
| 830 | - // --trace-warnings | ||
| 831 | - if (env->options()->trace_warnings) { | ||
| 832 | - READONLY_PROPERTY(process, "traceProcessWarnings", True(env->isolate())); | ||
| 833 | - } | ||
| 834 | - | ||
| 835 | - // --throw-deprecation | ||
| 836 | - if (env->options()->throw_deprecation) { | ||
| 837 | - READONLY_PROPERTY(process, "throwDeprecation", True(env->isolate())); | ||
| 838 | - } | ||
| 839 | - | ||
| 840 | - #ifdef NODE_NO_BROWSER_GLOBALS | ||
| 841 | - // configure --no-browser-globals | ||
| 842 | - READONLY_PROPERTY(process, "_noBrowserGlobals", True(env->isolate())); | ||
| 843 | - #endif // NODE_NO_BROWSER_GLOBALS | ||
| 844 | - | ||
| 845 | - // --prof-process | ||
| 846 | - // TODO(addaleax): Remove this. | ||
| 847 | - if (env->options()->prof_process) { | ||
| 848 | - READONLY_PROPERTY(process, "profProcess", True(env->isolate())); | ||
| 849 | - } | ||
| 850 | - | ||
| 851 | - // --trace-deprecation | ||
| 852 | - if (env->options()->trace_deprecation) { | ||
| 853 | - READONLY_PROPERTY(process, "traceDeprecation", True(env->isolate())); | ||
| 854 | - } | ||
| 855 | - | ||
| 856 | - // TODO(refack): move the following 4 to `node_config` | ||
| 857 | - // --inspect-brk | ||
| 858 | - if (env->options()->debug_options().wait_for_connect()) { | ||
| 859 | - READONLY_DONT_ENUM_PROPERTY(process, | ||
| 860 | - "_breakFirstLine", True(env->isolate())); | ||
| 861 | - } | ||
| 862 | - | ||
| 863 | - if (env->options()->debug_options().break_node_first_line) { | ||
| 864 | - READONLY_DONT_ENUM_PROPERTY(process, | ||
| 865 | - "_breakNodeFirstLine", True(env->isolate())); | ||
| 866 | - } | ||
| 867 | - | ||
| 868 | - // --inspect --debug-brk | ||
| 869 | - if (env->options()->debug_options().deprecated_invocation()) { | ||
| 870 | - READONLY_DONT_ENUM_PROPERTY(process, | ||
| 871 | - "_deprecatedDebugBrk", True(env->isolate())); | ||
| 872 | - } | ||
| 873 | - | ||
| 874 | - // --debug or, --debug-brk without --inspect | ||
| 875 | - if (env->options()->debug_options().invalid_invocation()) { | ||
| 876 | - READONLY_DONT_ENUM_PROPERTY(process, | ||
| 877 | - "_invalidDebug", True(env->isolate())); | ||
| 878 | - } | ||
| 879 | - | ||
| 880 | - // --security-revert flags | ||
| 881 | - #define V(code, _, __) \ | ||
| 882 | - do { \ | ||
| 883 | - if (IsReverted(SECURITY_REVERT_ ## code)) { \ | ||
| 884 | - READONLY_PROPERTY(process, "REVERT_" #code, True(env->isolate())); \ | ||
| 885 | - } \ | ||
| 886 | - } while (0); | ||
| 887 | - SECURITY_REVERSIONS(V) | ||
| 888 | - #undef V | ||
| 889 | - | ||
| 890 | - { | ||
| 891 | - size_t exec_path_len = 2 * PATH_MAX; | ||
| 892 | - std::vector<char> exec_path(exec_path_len); | ||
| 893 | - Local<String> exec_path_value; | ||
| 894 | - if (uv_exepath(exec_path.data(), &exec_path_len) == 0) { | ||
| 895 | - exec_path_value = String::NewFromUtf8(env->isolate(), | ||
| 896 | - exec_path.data(), | ||
| 897 | - NewStringType::kInternalized, | ||
| 898 | - exec_path_len).ToLocalChecked(); | ||
| 899 | - } else { | ||
| 900 | - exec_path_value = String::NewFromUtf8(env->isolate(), args[0].c_str(), | ||
| 901 | - NewStringType::kInternalized).ToLocalChecked(); | ||
| 902 | - } | ||
| 903 | - process->Set(env->context(), | ||
| 904 | - FIXED_ONE_BYTE_STRING(env->isolate(), "execPath"), | ||
| 905 | - exec_path_value).FromJust(); | ||
| 906 | - } | ||
| 907 | - | ||
| 908 | - auto debug_port_string = FIXED_ONE_BYTE_STRING(env->isolate(), "debugPort"); | ||
| 909 | - CHECK(process->SetAccessor(env->context(), | ||
| 910 | - debug_port_string, | ||
| 911 | - DebugPortGetter, | ||
| 912 | - env->is_main_thread() ? DebugPortSetter : nullptr, | ||
| 913 | - env->as_external()).FromJust()); | ||
| 914 | - } | ||
| 915 | - | ||
| 916 | - | ||
| 917 | 691 | void SignalExit(int signo) { | |
| 918 | 692 | uv_tty_reset_mode(); | |
| 919 | 693 | #ifdef __FreeBSD__ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -185,9 +185,10 @@ v8::Maybe<bool> ProcessEmitDeprecationWarning(Environment* env, | |||
| 185 | 185 | const char* warning, | |
| 186 | 186 | const char* deprecation_code); | |
| 187 | 187 | ||
| 188 | - void SetupProcessObject(Environment* env, | ||
| 189 | - const std::vector<std::string>& args, | ||
| 190 | - const std::vector<std::string>& exec_args); | ||
| 188 | + v8::Local<v8::Object> CreateProcessObject( | ||
| 189 | + Environment* env, | ||
| 190 | + const std::vector<std::string>& args, | ||
| 191 | + const std::vector<std::string>& exec_args); | ||
| 191 | 192 | ||
| 192 | 193 | enum Endianness { | |
| 193 | 194 | kLittleEndian, // _Not_ LITTLE_ENDIAN, clashes with endian.h. | |
| Back | FazBrowse Home | New Git URL |
0 commit comments