| Index: dart/editor/tools/plugins/com.google.dart.tools.debug.core/src/com/google/dart/tools/debug/core/webkit/WebkitRuntime.java
 | 
| ===================================================================
 | 
| --- dart/editor/tools/plugins/com.google.dart.tools.debug.core/src/com/google/dart/tools/debug/core/webkit/WebkitRuntime.java	(revision 37110)
 | 
| +++ dart/editor/tools/plugins/com.google.dart.tools.debug.core/src/com/google/dart/tools/debug/core/webkit/WebkitRuntime.java	(working copy)
 | 
| @@ -129,6 +129,47 @@
 | 
|      }
 | 
|    }
 | 
|  
 | 
| +  public void callListLength(String objectId, final WebkitCallback<Integer> callback)
 | 
| +      throws IOException {
 | 
| +    if (objectId == null) {
 | 
| +      WebkitResult<Integer> result = new WebkitResult<Integer>();
 | 
| +      result.setResult(new Integer(0));
 | 
| +      callback.handleResult(result);
 | 
| +      return;
 | 
| +    }
 | 
| +
 | 
| +    try {
 | 
| +      JSONObject request = new JSONObject();
 | 
| +
 | 
| +      request.put("method", "Runtime.callFunctionOn");
 | 
| +      request.put(
 | 
| +          "params",
 | 
| +          new JSONObject().put("objectId", objectId).put("functionDeclaration", "() => length").put(
 | 
| +              "returnByValue",
 | 
| +              false));
 | 
| +
 | 
| +      connection.sendRequest(request, new Callback() {
 | 
| +        @Override
 | 
| +        public void handleResult(JSONObject result) throws JSONException {
 | 
| +          WebkitResult<WebkitRemoteObject> functionResult = convertEvaluateResult(result);
 | 
| +
 | 
| +          WebkitResult<Integer> r = new WebkitResult<Integer>();
 | 
| +
 | 
| +          if (functionResult.getWasThrown()) {
 | 
| +            r.setError(functionResult.getResult().getValue());
 | 
| +          } else {
 | 
| +            r.setResult(functionResult.getResult() == null ? new Integer(0) : new Integer(
 | 
| +                functionResult.getResult().getValue()));
 | 
| +          }
 | 
| +
 | 
| +          callback.handleResult(r);
 | 
| +        }
 | 
| +      });
 | 
| +    } catch (JSONException exception) {
 | 
| +      throw new IOException(exception);
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
|    /**
 | 
|     * Calls the toString() method on the given remote object. This is a convenience method for the
 | 
|     * Runtime.callFunctionOn call.
 | 
| @@ -151,9 +192,9 @@
 | 
|        request.put("method", "Runtime.callFunctionOn");
 | 
|        request.put(
 | 
|            "params",
 | 
| -          new JSONObject().put("objectId", objectId).put(
 | 
| -              "functionDeclaration",
 | 
| -              "() => toString()").put("returnByValue", false));
 | 
| +          new JSONObject().put("objectId", objectId).put("functionDeclaration", "() => toString()").put(
 | 
| +              "returnByValue",
 | 
| +              false));
 | 
|  
 | 
|        connection.sendRequest(request, new Callback() {
 | 
|          @Override
 | 
| 
 |