Index: mojo/public/tools/bindings/generators/mojom_js_generator.py |
diff --git a/mojo/public/tools/bindings/generators/mojom_js_generator.py b/mojo/public/tools/bindings/generators/mojom_js_generator.py |
index 5b83974d97943ec15a117e877cd978bef32a1c73..b2591cf9f751fe016a1eebe779aca4aa84913721 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py |
@@ -41,7 +41,7 @@ def JavaScriptDefaultValue(field): |
if mojom.IsStructKind(field.kind): |
assert field.default == "default" |
return "new %s()" % JavascriptType(field.kind) |
- return ExpressionToText(field.default) |
+ return ExpressionToText(field.default, kind=field.kind) |
if field.kind in mojom.PRIMITIVES: |
return _kind_to_javascript_default_value[field.kind] |
if mojom.IsStructKind(field.kind): |
@@ -138,7 +138,7 @@ def JavaScriptEncodeSnippet(kind): |
return JavaScriptEncodeSnippet(mojom.INT32) |
-def TranslateConstants(token): |
+def TranslateConstants(token, kind=None): |
if isinstance(token, (mojom.EnumValue, mojom.NamedValue)): |
# Both variable and enum constants are constructed like: |
# NamespaceUid.Struct[.Enum].CONSTANT_NAME |
@@ -151,11 +151,20 @@ def TranslateConstants(token): |
name.append(token.enum_name) |
name.append(token.name) |
return ".".join(name) |
+ |
+ if kind == mojom.DOUBLE or kind == mojom.FLOAT: |
+ if token == "Inf" or token == "+Inf": |
+ return "Infinity" |
+ if token == "-Inf": |
+ return "-Infinity" |
+ if token == "NaN": |
+ return "NaN" |
+ |
return token |
-def ExpressionToText(value): |
- return TranslateConstants(value) |
+def ExpressionToText(value, kind=None): |
+ return TranslateConstants(value, kind) |
def JavascriptType(kind): |