@@ -162,28 +162,43 @@ export const repairIntrinsics = (options = {}) => {
162162 // for an explanation.
163163
164164 const {
165- errorTaming = getenv ( 'LOCKDOWN_ERROR_TAMING' , 'safe' ) ,
165+ errorTaming = getenv ( 'LOCKDOWN_ERROR_TAMING' , 'safe' , [
166+ 'unsafe' ,
167+ 'unsafe-debug' ,
168+ ] ) ,
166169 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+ ] )
168176 ) ,
169177 reporting = /** @type {"platform" | "console" | "none" } */ (
170- getenv ( 'LOCKDOWN_REPORTING' , 'platform' )
178+ getenv ( 'LOCKDOWN_REPORTING' , 'platform' , [ 'console' , 'none' ] )
171179 ) ,
172180 unhandledRejectionTrapping = /** @type {"none" | "report" } */ (
173- getenv ( 'LOCKDOWN_UNHANDLED_REJECTION_TRAPPING' , 'report' )
181+ getenv ( 'LOCKDOWN_UNHANDLED_REJECTION_TRAPPING' , 'report' , [ 'none' ] )
174182 ) ,
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' ] ) ,
177185
178186 consoleTaming = /** @type {'unsafe' | 'safe' } */ (
179- getenv ( 'LOCKDOWN_CONSOLE_TAMING' , 'safe' )
187+ getenv ( 'LOCKDOWN_CONSOLE_TAMING' , 'safe' , [ 'unsafe' ] )
180188 ) ,
181189 overrideTaming = /** @type {'moderate' | 'min' | 'severe' } */ (
182- getenv ( 'LOCKDOWN_OVERRIDE_TAMING' , 'moderate' )
190+ getenv ( 'LOCKDOWN_OVERRIDE_TAMING' , 'moderate' , [ 'min' , 'severe' ] )
183191 ) ,
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+ ] ) ,
187202 overrideDebug = arrayFilter (
188203 stringSplit ( getenv ( 'LOCKDOWN_OVERRIDE_DEBUG' , '' ) , ',' ) ,
189204 /** @param {string } debugName */
@@ -192,25 +207,14 @@ export const repairIntrinsics = (options = {}) => {
192207 legacyRegeneratorRuntimeTaming = getenv (
193208 'LOCKDOWN_LEGACY_REGENERATOR_RUNTIME_TAMING' ,
194209 'safe' ,
210+ [ 'unsafe-ignore' ] ,
195211 ) ,
196- __hardenTaming__ = getenv ( 'LOCKDOWN_HARDEN_TAMING' , 'safe' ) ,
212+ __hardenTaming__ = getenv ( 'LOCKDOWN_HARDEN_TAMING' , 'safe' , [ 'unsafe' ] ) ,
197213 dateTaming, // deprecated
198214 mathTaming, // deprecated
199215 ...extraOptions
200216 } = options ;
201217
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-
214218 // Assert that only supported options were passed.
215219 // Use Reflect.ownKeys to reject symbol-named properties as well.
216220 const extraOptionsNames = ownKeys ( extraOptions ) ;
0 commit comments