@@ -4,7 +4,7 @@ const hasBuffer = typeof Buffer !== 'undefined'
44const suspectProtoRx = / " (?: _ | \\ u 0 0 5 [ F f ] ) (?: _ | \\ u 0 0 5 [ F f ] ) (?: p | \\ u 0 0 7 0 ) (?: r | \\ u 0 0 7 2 ) (?: o | \\ u 0 0 6 [ F f ] ) (?: t | \\ u 0 0 7 4 ) (?: o | \\ u 0 0 6 [ F f ] ) (?: _ | \\ u 0 0 5 [ F f ] ) (?: _ | \\ u 0 0 5 [ F f ] ) " \s * : /
55const suspectConstructorRx = / " (?: c | \\ u 0 0 6 3 ) (?: o | \\ u 0 0 6 [ F f ] ) (?: n | \\ u 0 0 6 [ E e ] ) (?: s | \\ u 0 0 7 3 ) (?: t | \\ u 0 0 7 4 ) (?: r | \\ u 0 0 7 2 ) (?: u | \\ u 0 0 7 5 ) (?: c | \\ u 0 0 6 3 ) (?: t | \\ u 0 0 7 4 ) (?: o | \\ u 0 0 6 [ F f ] ) (?: r | \\ u 0 0 7 2 ) " \s * : /
66
7- function parse ( text , reviver , options ) {
7+ function _parse ( text , reviver , options ) {
88 // Normalize arguments
99 if ( options == null ) {
1010 if ( reviver !== null && typeof reviver === 'object' ) {
@@ -97,11 +97,25 @@ function filter (obj, { protoAction = 'error', constructorAction = 'error', safe
9797 return obj
9898}
9999
100+ function parse ( text , reviver , options ) {
101+ const stackTraceLimit = Error . stackTraceLimit
102+ Error . stackTraceLimit = 0
103+ try {
104+ return _parse ( text , reviver , options )
105+ } finally {
106+ Error . stackTraceLimit = stackTraceLimit
107+ }
108+ }
109+
100110function safeParse ( text , reviver ) {
111+ const stackTraceLimit = Error . stackTraceLimit
112+ Error . stackTraceLimit = 0
101113 try {
102- return parse ( text , reviver , { safe : true } )
103- } catch ( ignoreError ) {
114+ return _parse ( text , reviver , { safe : true } )
115+ } catch ( _e ) {
104116 return null
117+ } finally {
118+ Error . stackTraceLimit = stackTraceLimit
105119 }
106120}
107121
0 commit comments