@@ -42,32 +42,31 @@ function jsonPrune(
4242 const logPrefix = safe . makeLogPrefix ( 'json-prune' , rawPrunePaths , rawNeedlePaths , stackNeedle ) ;
4343 const stackNeedleDetails = safe . initPattern ( stackNeedle , { canNegate : true } ) ;
4444 const extraArgs = safe . getExtraArgs ( Array . from ( arguments ) , 3 ) ;
45- JSON . parse = new Proxy ( JSON . parse , {
46- apply : function ( target , thisArg , args ) {
47- const objBefore = Reflect . apply ( target , thisArg , args ) ;
48- if ( rawPrunePaths === '' ) {
49- safe . uboLog ( logPrefix , safe . JSON_stringify ( objBefore , null , 2 ) ) ;
50- }
51- const objAfter = objectPruneFn (
52- objBefore ,
53- rawPrunePaths ,
54- rawNeedlePaths ,
55- stackNeedleDetails ,
56- extraArgs
57- ) ;
58- if ( objAfter === undefined ) { return objBefore ; }
59- safe . uboLog ( logPrefix , 'Pruned' ) ;
60- if ( safe . logLevel > 1 ) {
61- safe . uboLog ( logPrefix , `After pruning:\n${ safe . JSON_stringify ( objAfter , null , 2 ) } ` ) ;
62- }
63- return objAfter ;
64- } ,
45+ proxyApplyFn ( 'JSON.parse' , function ( context ) {
46+ const objBefore = context . reflect ( ) ;
47+ if ( rawPrunePaths === '' ) {
48+ safe . uboLog ( logPrefix , safe . JSON_stringify ( objBefore , null , 2 ) ) ;
49+ }
50+ const objAfter = objectPruneFn (
51+ objBefore ,
52+ rawPrunePaths ,
53+ rawNeedlePaths ,
54+ stackNeedleDetails ,
55+ extraArgs
56+ ) ;
57+ if ( objAfter === undefined ) { return objBefore ; }
58+ safe . uboLog ( logPrefix , 'Pruned' ) ;
59+ if ( safe . logLevel > 1 ) {
60+ safe . uboLog ( logPrefix , `After pruning:\n${ safe . JSON_stringify ( objAfter , null , 2 ) } ` ) ;
61+ }
62+ return objAfter ;
6563 } ) ;
6664}
6765registerScriptlet ( jsonPrune , {
6866 name : 'json-prune.js' ,
6967 dependencies : [
7068 objectPruneFn ,
69+ proxyApplyFn ,
7170 safeSelf ,
7271 ] ,
7372} ) ;
0 commit comments