Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1387)

Unified Diff: mojo/public/tools/bindings/generators/mojom_js_generator.py

Issue 474063002: Mojo: add support for {double,float}.{INFINITY,NEGATIVE_INFINITY,NAN} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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):

Powered by Google App Engine
This is Rietveld 408576698