@@ -4,7 +4,7 @@ const hasBuffer = typeof Buffer !== 'undefined'
4
4
const 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 * : /
5
5
const 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 * : /
6
6
7
- function parse ( text , reviver , options ) {
7
+ function _parse ( text , reviver , options ) {
8
8
// Normalize arguments
9
9
if ( options == null ) {
10
10
if ( reviver !== null && typeof reviver === 'object' ) {
@@ -97,11 +97,25 @@ function filter (obj, { protoAction = 'error', constructorAction = 'error', safe
97
97
return obj
98
98
}
99
99
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
+
100
110
function safeParse ( text , reviver ) {
111
+ const stackTraceLimit = Error . stackTraceLimit
112
+ Error . stackTraceLimit = 0
101
113
try {
102
- return parse ( text , reviver , { safe : true } )
103
- } catch ( ignoreError ) {
114
+ return _parse ( text , reviver , { safe : true } )
115
+ } catch ( _e ) {
104
116
return null
117
+ } finally {
118
+ Error . stackTraceLimit = stackTraceLimit
105
119
}
106
120
}
107
121
0 commit comments