Reviewers: ,
Message:
This is a replicate of http://codereview.chromium.org/10091022/ that has
LGTM
but is targeted to the wrong branch.
Description:
Issue 2089 Expose value wrapper's inner values
Please review this at https://chromiumcodereview.appspot.com/10162006/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/mirror-debugger.js
Index: src/mirror-debugger.js
diff --git a/src/mirror-debugger.js b/src/mirror-debugger.js
index
c43dd228ec9d12c73a0d66a4102477649f85862f..82e6fd261a41b20e9a07fd4434fd10a0326890ed
100644
--- a/src/mirror-debugger.js
+++ b/src/mirror-debugger.js
@@ -596,6 +596,23 @@ ObjectMirror.prototype.protoObject = function() {
};
+/**
+ * Return the primitive value if this is object of Boolean, Number or
String
+ * type (but not Date). Otherwise return undefined.
+ */
+ObjectMirror.prototype.primitiveValue = function() {
+ if (!IS_STRING_WRAPPER(this.value_) && !IS_NUMBER_WRAPPER(this.value_) &&
+ !IS_BOOLEAN_WRAPPER(this.value_)) {
+ return void 0;
+ }
+ var primitiveValue = %_ValueOf(this.value_);
+ if (IS_UNDEFINED(primitiveValue)) {
+ return void 0;
+ }
+ return MakeMirror(primitiveValue);
+};
+
+
ObjectMirror.prototype.hasNamedInterceptor = function() {
// Get information on interceptors for this object.
var x = %GetInterceptorInfo(this.value_);
@@ -2234,6 +2251,11 @@ JSONProtocolSerializer.prototype.serializeObject_ =
function(mirror, content,
content.protoObject = this.serializeReference(mirror.protoObject());
content.prototypeObject =
this.serializeReference(mirror.prototypeObject());
+ var primitiveValue = mirror.primitiveValue();
+ if (!IS_UNDEFINED(primitiveValue)) {
+ content.primitiveValue = this.serializeReference(primitiveValue);
+ }
+
// Add flags to indicate whether there are interceptors.
if (mirror.hasNamedInterceptor()) {
content.namedInterceptor = true;
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev