@@ -46,10 +46,8 @@ const {
46
46
JSONParse,
47
47
ObjectDefineProperty,
48
48
ObjectGetPrototypeOf,
49
- ObjectPreventExtensions,
50
49
ObjectSetPrototypeOf,
51
- ReflectGet,
52
- ReflectSet,
50
+ ObjectFreeze,
53
51
SymbolToStringTag,
54
52
globalThis,
55
53
} = primordials ;
@@ -72,75 +70,15 @@ process._exiting = false;
72
70
// process.config is serialized config.gypi
73
71
const nativeModule = internalBinding ( 'native_module' ) ;
74
72
75
- // TODO(@jasnell): Once this has gone through one full major
76
- // release cycle, remove the Proxy and setter and update the
77
- // getter to either return a read-only object or always return
78
- // a freshly parsed version of nativeModule.config.
79
-
80
- const deprecationHandler = {
81
- warned : false ,
82
- message : 'Setting process.config is deprecated. ' +
83
- 'In the future the property will be read-only.' ,
84
- code : 'DEP0150' ,
85
- maybeWarn ( ) {
86
- if ( ! this . warned ) {
87
- process . emitWarning ( this . message , {
88
- type : 'DeprecationWarning' ,
89
- code : this . code
90
- } ) ;
91
- this . warned = true ;
92
- }
93
- } ,
94
-
95
- defineProperty ( target , key , descriptor ) {
96
- this . maybeWarn ( ) ;
97
- return ObjectDefineProperty ( target , key , descriptor ) ;
98
- } ,
99
-
100
- deleteProperty ( target , key ) {
101
- this . maybeWarn ( ) ;
102
- delete target [ key ] ;
103
- } ,
104
-
105
- preventExtensions ( target ) {
106
- this . maybeWarn ( ) ;
107
- return ObjectPreventExtensions ( target ) ;
108
- } ,
109
-
110
- set ( target , key , value ) {
111
- this . maybeWarn ( ) ;
112
- return ReflectSet ( target , key , value ) ;
113
- } ,
114
-
115
- get ( target , key , receiver ) {
116
- const val = ReflectGet ( target , key , receiver ) ;
117
- if ( val != null && typeof val === 'object' ) {
118
- // eslint-disable-next-line node-core/prefer-primordials
119
- return new Proxy ( val , deprecationHandler ) ;
120
- }
121
- return val ;
122
- } ,
123
-
124
- setPrototypeOf ( target , proto ) {
125
- this . maybeWarn ( ) ;
126
- return ObjectSetPrototypeOf ( target , proto ) ;
127
- }
128
- } ;
129
-
130
- // eslint-disable-next-line node-core/prefer-primordials
131
- let processConfig = new Proxy (
132
- JSONParse ( nativeModule . config ) ,
133
- deprecationHandler ) ;
73
+ const processConfig = JSONParse ( nativeModule . config , ( _key , value ) => {
74
+ return ObjectFreeze ( value ) ;
75
+ } ) ;
134
76
135
77
ObjectDefineProperty ( process , 'config' , {
136
78
__proto__ : null ,
137
79
enumerable : true ,
138
80
configurable : true ,
139
81
get ( ) { return processConfig ; } ,
140
- set ( value ) {
141
- deprecationHandler . maybeWarn ( ) ;
142
- processConfig = value ;
143
- }
144
82
} ) ;
145
83
146
84
require ( 'internal/worker/js_transferable' ) . setup ( ) ;
0 commit comments