[mojo-bindings] Use Watcher API for JS bindings

BUG=592183

Review URL: https://codereview.chromium.org/1777673003

Cr-Commit-Position: refs/heads/master@{#380092}


CrOS-Libchrome-Original-Commit: b98777bcf33f467bba92cff7de951f0b3fd13b32
diff --git a/mojo/public/js/support.js b/mojo/public/js/support.js
index 025da6c..7e27504 100644
--- a/mojo/public/js/support.js
+++ b/mojo/public/js/support.js
@@ -9,22 +9,45 @@
 
 while (1);
 
-/*
+/* @deprecated Please use watch()/cancelWatch() instead of
+ *     asyncWait()/cancelWait().
+ *
  * Waits on the given handle until the state indicated by |signals| is
  * satisfied.
  *
  * @param {MojoHandle} handle The handle to wait on.
  * @param {MojoHandleSignals} signals Specifies the condition to wait for.
  * @param {function (mojoResult)} callback Called with the result the wait is
- * complete. See MojoWait for possible result codes.
+ *     complete. See MojoWait for possible result codes.
  *
  * @return {MojoWaitId} A waitId that can be passed to cancelWait to cancel the
- * wait.
+ *     wait.
  */
 function asyncWait(handle, signals, callback) { [native code] }
 
-/*
+/* @deprecated Please use watch()/cancelWatch() instead of
+ *     asyncWait()/cancelWait().
+ *
  * Cancels the asyncWait operation specified by the given |waitId|.
+ *
  * @param {MojoWaitId} waitId The waitId returned by asyncWait.
  */
 function cancelWait(waitId) { [native code] }
+
+/* Begins watching a handle for |signals| to be satisfied or unsatisfiable.
+ *
+  * @param {MojoHandle} handle The handle to watch.
+  * @param {MojoHandleSignals} signals The signals to watch.
+  * @param {function (mojoResult)} calback Called with a result any time
+  *     the watched signals become satisfied or unsatisfiable.
+  *
+  * @param {MojoWatchId} watchId An opaque identifier that identifies this
+  *     watch.
+  */
+function watch(handle, signals, callback) { [native code] }
+
+/* Cancels a handle watch initiated by watch().
+ *
+ * @param {MojoWatchId} watchId The watch identifier returned by watch().
+ */
+function cancelWatch(watchId) { [native code] }