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

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

Issue 2889723002: Mojo JavaScript bindings: follow JavaScript naming rules. (Closed)
Patch Set: . Created 3 years, 7 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
« no previous file with comments | « mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 13a9c39b4ebcad4fc15c1554d9d07681706976ac..a6e31340c72cdd77ff1f9c7a07fd2432260fa68b 100644
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
@@ -92,6 +92,30 @@ def GetRelativePath(module, base_module):
return os.path.relpath(module.path, os.path.dirname(base_module.path))
+class JavaScriptStylizer(generator.Stylizer):
+ def __init__(self, use_new_js_bindings):
+ self.use_new_js_bindings = use_new_js_bindings
+
+ def StylizeField(self, mojom_name):
+ if not self.use_new_js_bindings:
+ return mojom_name
+ return generator.ToCamel(mojom_name, lower_initial=True)
+
+ def StylizeParameter(self, mojom_name):
+ if not self.use_new_js_bindings:
+ return mojom_name
+ return generator.ToCamel(mojom_name, lower_initial=True)
+
+ def StylizeMethod(self, mojom_name):
+ return generator.ToCamel(mojom_name, lower_initial=True)
+
+ def StylizeModule(self, mojom_namespace):
+ if not self.use_new_js_bindings:
+ return mojom_namespace
+ return '.'.join(generator.ToCamel(word, lower_initial=True)
+ for word in mojom_namespace.split('.'))
+
+
class Generator(generator.Generator):
def _GetParameters(self):
return {
@@ -136,7 +160,6 @@ class Generator(generator.Generator):
"js_type": self._JavaScriptType,
"method_passes_associated_kinds": mojom.MethodPassesAssociatedKinds,
"payload_size": JavaScriptPayloadSize,
- "stylize_method": lambda x: generator.ToCamel(x, lower_initial=True),
"to_camel": generator.ToCamel,
"union_decode_snippet": self._JavaScriptUnionDecodeSnippet,
"union_encode_snippet": self._JavaScriptUnionEncodeSnippet,
@@ -157,8 +180,7 @@ class Generator(generator.Generator):
if self.variant:
raise Exception("Variants not supported in JavaScript bindings.")
- # TODO(yzshen): Add a JavaScriptStylizer.
- self.module.Stylize(generator.Stylizer())
+ self.module.Stylize(JavaScriptStylizer(self.use_new_js_bindings))
# TODO(yzshen): Remove this method once the old JS bindings go away.
self._SetUniqueNameForImports()
« no previous file with comments | « mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698