@@ -162,28 +162,43 @@ export const repairIntrinsics = (options = {}) => {
162
162
// for an explanation.
163
163
164
164
const {
165
- errorTaming = getenv ( 'LOCKDOWN_ERROR_TAMING' , 'safe' ) ,
165
+ errorTaming = getenv ( 'LOCKDOWN_ERROR_TAMING' , 'safe' , [
166
+ 'unsafe' ,
167
+ 'unsafe-debug' ,
168
+ ] ) ,
166
169
errorTrapping = /** @type {"platform" | "none" | "report" | "abort" | "exit" } */ (
167
- getenv ( 'LOCKDOWN_ERROR_TRAPPING' , 'platform' )
170
+ getenv ( 'LOCKDOWN_ERROR_TRAPPING' , 'platform' , [
171
+ 'none' ,
172
+ 'report' ,
173
+ 'abort' ,
174
+ 'exit' ,
175
+ ] )
168
176
) ,
169
177
reporting = /** @type {"platform" | "console" | "none" } */ (
170
- getenv ( 'LOCKDOWN_REPORTING' , 'platform' )
178
+ getenv ( 'LOCKDOWN_REPORTING' , 'platform' , [ 'console' , 'none' ] )
171
179
) ,
172
180
unhandledRejectionTrapping = /** @type {"none" | "report" } */ (
173
- getenv ( 'LOCKDOWN_UNHANDLED_REJECTION_TRAPPING' , 'report' )
181
+ getenv ( 'LOCKDOWN_UNHANDLED_REJECTION_TRAPPING' , 'report' , [ 'none' ] )
174
182
) ,
175
- regExpTaming = getenv ( 'LOCKDOWN_REGEXP_TAMING' , 'safe' ) ,
176
- localeTaming = getenv ( 'LOCKDOWN_LOCALE_TAMING' , 'safe' ) ,
183
+ regExpTaming = getenv ( 'LOCKDOWN_REGEXP_TAMING' , 'safe' , [ 'unsafe' ] ) ,
184
+ localeTaming = getenv ( 'LOCKDOWN_LOCALE_TAMING' , 'safe' , [ 'unsafe' ] ) ,
177
185
178
186
consoleTaming = /** @type {'unsafe' | 'safe' } */ (
179
- getenv ( 'LOCKDOWN_CONSOLE_TAMING' , 'safe' )
187
+ getenv ( 'LOCKDOWN_CONSOLE_TAMING' , 'safe' , [ 'unsafe' ] )
180
188
) ,
181
189
overrideTaming = /** @type {'moderate' | 'min' | 'severe' } */ (
182
- getenv ( 'LOCKDOWN_OVERRIDE_TAMING' , 'moderate' )
190
+ getenv ( 'LOCKDOWN_OVERRIDE_TAMING' , 'moderate' , [ 'min' , 'severe' ] )
183
191
) ,
184
- stackFiltering = getenv ( 'LOCKDOWN_STACK_FILTERING' , 'concise' ) ,
185
- domainTaming = getenv ( 'LOCKDOWN_DOMAIN_TAMING' , 'safe' ) ,
186
- evalTaming = getenv ( 'LOCKDOWN_EVAL_TAMING' , 'safe-eval' ) ,
192
+ stackFiltering = getenv ( 'LOCKDOWN_STACK_FILTERING' , 'concise' , [ 'verbose' ] ) ,
193
+ domainTaming = getenv ( 'LOCKDOWN_DOMAIN_TAMING' , 'safe' , [ 'unsafe' ] ) ,
194
+ evalTaming = getenv ( 'LOCKDOWN_EVAL_TAMING' , 'safe-eval' , [
195
+ 'unsafe-eval' ,
196
+ 'no-eval' ,
197
+ // deprecated
198
+ 'safeEval' ,
199
+ 'unsafeEval' ,
200
+ 'noEval' ,
201
+ ] ) ,
187
202
overrideDebug = arrayFilter (
188
203
stringSplit ( getenv ( 'LOCKDOWN_OVERRIDE_DEBUG' , '' ) , ',' ) ,
189
204
/** @param {string } debugName */
@@ -192,25 +207,14 @@ export const repairIntrinsics = (options = {}) => {
192
207
legacyRegeneratorRuntimeTaming = getenv (
193
208
'LOCKDOWN_LEGACY_REGENERATOR_RUNTIME_TAMING' ,
194
209
'safe' ,
210
+ [ 'unsafe-ignore' ] ,
195
211
) ,
196
- __hardenTaming__ = getenv ( 'LOCKDOWN_HARDEN_TAMING' , 'safe' ) ,
212
+ __hardenTaming__ = getenv ( 'LOCKDOWN_HARDEN_TAMING' , 'safe' , [ 'unsafe' ] ) ,
197
213
dateTaming, // deprecated
198
214
mathTaming, // deprecated
199
215
...extraOptions
200
216
} = options ;
201
217
202
- legacyRegeneratorRuntimeTaming === 'safe' ||
203
- legacyRegeneratorRuntimeTaming === 'unsafe-ignore' ||
204
- Fail `lockdown(): non supported option legacyRegeneratorRuntimeTaming: ${ q ( legacyRegeneratorRuntimeTaming ) } ` ;
205
-
206
- evalTaming === 'unsafe-eval' ||
207
- evalTaming === 'unsafeEval' || // deprecated
208
- evalTaming === 'safe-eval' ||
209
- evalTaming === 'safeEval' || // deprecated
210
- evalTaming === 'no-eval' ||
211
- evalTaming === 'noEval' || // deprecated
212
- Fail `lockdown(): non supported option evalTaming: ${ q ( evalTaming ) } ` ;
213
-
214
218
// Assert that only supported options were passed.
215
219
// Use Reflect.ownKeys to reject symbol-named properties as well.
216
220
const extraOptionsNames = ownKeys ( extraOptions ) ;
0 commit comments