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

Unified Diff: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java

Issue 11662019: Support variable changing in SDK interface and v8 native (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: merge Created 7 years, 11 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: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java
diff --git a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java
index f691826c1b238f367804af3add07a5405fdae32c..c88439571611dc4647fccbc25434ef0ae29be618 100644
--- a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java
+++ b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/protocol/output/ScopeMessage.java
@@ -4,6 +4,8 @@
package org.chromium.sdk.internal.v8native.protocol.output;
+import java.util.Map;
+
import org.chromium.sdk.internal.v8native.DebuggerCommand;
/**
@@ -11,16 +13,42 @@ import org.chromium.sdk.internal.v8native.DebuggerCommand;
*/
public class ScopeMessage extends DebuggerMessage {
- public ScopeMessage(int scopeNumber, Integer frameNumber, Long functionHandle) {
+ public ScopeMessage(Ref scopeRef) {
super(DebuggerCommand.SCOPE.value);
- putArgument("number", scopeNumber);
- if (frameNumber != null) {
- putArgument("frameNumber", frameNumber);
+ scopeRef.fillJson(getArguments());
+ putArgument("inlineRefs", true);
+ }
+
+ public static class Ref {
+ private final int scopeNumber;
+ private final Host host;
+
+ public Ref(int scopeNumber, Host host) {
+ this.scopeNumber = scopeNumber;
+ this.host = host;
}
- if (functionHandle != null) {
- putArgument("functionHandle", functionHandle);
+ void fillJson(Map<? super String, ? super Object> object) {
+ object.put("number", scopeNumber);
+ host.fillJson(object);
}
- putArgument("inlineRefs", true);
}
+ public static abstract class Host {
+ public static Host createFrame(final int frameNumber) {
+ return new Host() {
+ @Override void fillJson(Map<? super String, ? super Object> object) {
+ object.put("frameNumber", frameNumber);
+ }
+ };
+ }
+ public static Host createFunction(final long functionHandle) {
+ return new Host() {
+ @Override void fillJson(Map<? super String, ? super Object> object) {
+ object.put("functionHandle", functionHandle);
+ }
+ };
+ }
+
+ abstract void fillJson(Map<? super String, ? super Object> object);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698