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

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

Issue 317073005: Mojom: Add 'default' keyword for initializing structs to non-null value. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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 5d51d16bf43b9b09c49349e05e82ad1bb22ccbbd..8d1ffbafb1dc27abdca1e489cf836cadb2deef31 100644
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
@@ -32,7 +32,10 @@ _kind_to_javascript_default_value = {
def JavaScriptDefaultValue(field):
if field.default:
- raise Exception("Default values should've been handled in jinja.")
+ if isinstance(field.kind, mojom.Struct):
+ assert field.default == "default"
+ return "new %s()" % JavascriptType(field.kind)
+ return ExpressionToText(field.default)
if field.kind in mojom.PRIMITIVES:
return _kind_to_javascript_default_value[field.kind]
if isinstance(field.kind, mojom.Struct):
@@ -154,12 +157,8 @@ class Generator(generator.Generator):
"decode_snippet": JavaScriptDecodeSnippet,
"encode_snippet": JavaScriptEncodeSnippet,
"expression_to_text": ExpressionToText,
- "is_object_kind": generator.IsObjectKind,
- "is_string_kind": generator.IsStringKind,
- "is_array_kind": lambda kind: isinstance(kind, mojom.Array),
"js_type": JavascriptType,
"stylize_method": generator.StudlyCapsToCamel,
- "verify_token_type": generator.VerifyTokenType,
}
@UseJinja("js_templates/module.js.tmpl", filters=js_filters)

Powered by Google App Engine
This is Rietveld 408576698