Index: src/json.js |
diff --git a/src/json.js b/src/json.js |
index fe820f9b06f928ffe657c478f71360fb297f775d..e405f87bab6b39a6905304adbc66ebd8f421d00d 100644 |
--- a/src/json.js |
+++ b/src/json.js |
@@ -183,27 +183,6 @@ function JSONStringify(value, replacer, space) { |
if (%_ArgumentsLength() == 1) { |
return %BasicJSONStringify(value); |
} |
- if (IS_OBJECT(space)) { |
- // Unwrap 'space' if it is wrapped |
- if (IS_NUMBER_WRAPPER(space)) { |
- space = $toNumber(space); |
- } else if (IS_STRING_WRAPPER(space)) { |
- space = $toString(space); |
- } |
- } |
- var gap; |
- if (IS_NUMBER(space)) { |
- space = MathMax(0, MathMin($toInteger(space), 10)); |
- gap = %_SubString(" ", 0, space); |
- } else if (IS_STRING(space)) { |
- if (space.length > 10) { |
- gap = %_SubString(space, 0, 10); |
- } else { |
- gap = space; |
- } |
- } else { |
- gap = ""; |
- } |
if (IS_ARRAY(replacer)) { |
// Deduplicate replacer array items. |
var property_list = new InternalArray(); |
@@ -228,6 +207,27 @@ function JSONStringify(value, replacer, space) { |
} |
replacer = property_list; |
} |
+ if (IS_OBJECT(space)) { |
+ // Unwrap 'space' if it is wrapped |
+ if (IS_NUMBER_WRAPPER(space)) { |
+ space = $toNumber(space); |
+ } else if (IS_STRING_WRAPPER(space)) { |
+ space = $toString(space); |
+ } |
+ } |
+ var gap; |
+ if (IS_NUMBER(space)) { |
+ space = MathMax(0, MathMin($toInteger(space), 10)); |
+ gap = %_SubString(" ", 0, space); |
+ } else if (IS_STRING(space)) { |
+ if (space.length > 10) { |
+ gap = %_SubString(space, 0, 10); |
+ } else { |
+ gap = space; |
+ } |
+ } else { |
+ gap = ""; |
+ } |
return JSONSerialize('', {'': value}, replacer, new InternalArray(), "", gap); |
} |