| Index: mojo/public/tools/bindings/mojom.gni
|
| diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni
|
| index b0bcce8058d8371dc59e7b0d279d535dec454b51..081636afa9e1941c87f5a217e96281f0d4b3ed4e 100644
|
| --- a/mojo/public/tools/bindings/mojom.gni
|
| +++ b/mojo/public/tools/bindings/mojom.gni
|
| @@ -158,6 +158,15 @@ if (enable_mojom_typemapping) {
|
| # TODO(yzshen): Convert all users to use new JS bindings and remove the
|
| # old mode.
|
| #
|
| +# js_bindings_mode (optional)
|
| +# |js_bindings_mode| and |use_new_js_bindings| are mutually exclusive. You
|
| +# can only specify at most one of them.
|
| +# - "new" (default): generate only the new-style JS bindings;
|
| +# - "both": generate both the old- and new-style JS bindings;
|
| +# - "old": generate only the old-style JS bindings.
|
| +# TODO(yzshen): Convert all users to use new JS bindings and remove the
|
| +# old mode.
|
| +#
|
| # component_output_prefix (optional)
|
| # The prefix to use for the output_name of any component library emitted
|
| # for generated C++ bindings. If this is omitted, C++ bindings targets are
|
| @@ -212,6 +221,12 @@ template("mojom") {
|
| defined(invoker.sources) || defined(invoker.deps) ||
|
| defined(invoker.public_deps),
|
| "\"sources\" or \"deps\" must be defined for the $target_name template.")
|
| +
|
| + assert(!defined(invoker.use_new_js_bindings) ||
|
| + !defined(invoker.js_bindings_mode),
|
| + "You shouldn't specify both \"use_new_js_bindings\" and " +
|
| + "\"js_bindings_mode\".")
|
| +
|
| if (defined(invoker.export_class_attribute) ||
|
| defined(invoker.export_define) || defined(invoker.export_header)) {
|
| assert(defined(invoker.export_class_attribute))
|
| @@ -238,10 +253,16 @@ template("mojom") {
|
| assert(defined(invoker.component_deps_blink))
|
| }
|
|
|
| - if (defined(invoker.use_new_js_bindings)) {
|
| - assert(invoker.use_new_js_bindings || !invoker.use_new_js_bindings,
|
| - "Surpress unused variable error when JS bindings are not needed.")
|
| + js_bindings_mode = "new"
|
| + if (defined(invoker.js_bindings_mode)) {
|
| + js_bindings_mode = invoker.js_bindings_mode
|
| }
|
| + if (defined(invoker.use_new_js_bindings) && !invoker.use_new_js_bindings) {
|
| + js_bindings_mode = "old"
|
| + }
|
| + assert(js_bindings_mode == "new" || js_bindings_mode == "both" ||
|
| + js_bindings_mode == "old",
|
| + "Invalid js_bindings_mode value.")
|
|
|
| all_deps = []
|
| if (defined(invoker.deps)) {
|
| @@ -877,10 +898,10 @@ template("mojom") {
|
| "javascript",
|
| ]
|
|
|
| - if (!defined(invoker.use_new_js_bindings) ||
|
| - invoker.use_new_js_bindings) {
|
| - args += [ "--use_new_js_bindings" ]
|
| - }
|
| + args += [
|
| + "--js_bindings_mode",
|
| + js_bindings_mode,
|
| + ]
|
| }
|
| }
|
|
|
|
|