summaryrefslogtreecommitdiff
path: root/sphinx/util/jsdump.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/util/jsdump.py')
-rw-r--r--sphinx/util/jsdump.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/sphinx/util/jsdump.py b/sphinx/util/jsdump.py
index e75648a6b..49813672d 100644
--- a/sphinx/util/jsdump.py
+++ b/sphinx/util/jsdump.py
@@ -89,11 +89,13 @@ def dumps(obj, key=False):
elif isinstance(obj, integer_types + (float,)):
return str(obj)
elif isinstance(obj, dict):
- return '{%s}' % ','.join('%s:%s' % (
+ return '{%s}' % ','.join(sorted('%s:%s' % (
dumps(key, True),
dumps(value)
- ) for key, value in iteritems(obj))
- elif isinstance(obj, (tuple, list, set)):
+ ) for key, value in iteritems(obj)))
+ elif isinstance(obj, set):
+ return '[%s]' % ','.join(sorted(dumps(x) for x in obj))
+ elif isinstance(obj, (tuple, list)):
return '[%s]' % ','.join(dumps(x) for x in obj)
elif isinstance(obj, string_types):
return encode_string(obj)