diff --git a/.eslintignore b/.eslintignore index 8ddba4887b00..c881418c4b21 100644 --- a/.eslintignore +++ b/.eslintignore @@ -110,7 +110,6 @@ devtools/client/webide/** devtools/server/** !devtools/server/actors/webbrowser.js !devtools/server/actors/styles.js -!devtools/server/actors/string.js devtools/shared/*.js !devtools/shared/css-lexer.js !devtools/shared/defer.js diff --git a/devtools/server/actors/string.js b/devtools/server/actors/string.js index a89df3fe5c08..a252e5bbc823 100644 --- a/devtools/server/actors/string.js +++ b/devtools/server/actors/string.js @@ -4,13 +4,14 @@ "use strict"; +var {Cu} = require("chrome"); var {DebuggerServer} = require("devtools/server/main"); var promise = require("promise"); var {Class} = require("sdk/core/heritage"); var protocol = require("devtools/shared/protocol"); -var {method, Arg, RetVal} = protocol; +var {method, Arg, Option, RetVal} = protocol; exports.LongStringActor = protocol.ActorClass({ typeName: "longstractor", @@ -63,17 +64,9 @@ exports.ShortLongString = Class({ this.str = str; }, - get length() { - return this.str.length; - }, - - get initial() { - return this.str; - }, - - string: function () { - return promise.resolve(this.str); - }, + get length() { return this.str.length; }, + get initial() { return this.str; }, + string: function () { return promise.resolve(this.str); }, substring: function (start, end) { return promise.resolve(this.str.substring(start, end)); @@ -106,12 +99,13 @@ exports.LongStringFront = protocol.FrontClass(exports.LongStringActor, { string: function () { if (!this.strPromise) { let promiseRest = (thusFar) => { - if (thusFar.length === this.length) { + if (thusFar.length === this.length) return promise.resolve(thusFar); + else { + return this.substring(thusFar.length, + thusFar.length + DebuggerServer.LONG_STRING_READ_LENGTH) + .then((next) => promiseRest(thusFar + next)); } - return this.substring(thusFar.length, - thusFar.length + DebuggerServer.LONG_STRING_READ_LENGTH) - .then((next) => promiseRest(thusFar + next)); }; this.strPromise = promiseRest(this.initial); @@ -130,11 +124,11 @@ protocol.types.addType("longstring", { if (!(context instanceof protocol.Actor)) { throw Error("Passing a longstring as an argument isn't supported."); } - if (value.short) { return value.str; + } else { + return stringActorType.write(value, context, detail); } - return stringActorType.write(value, context, detail); }, read: (value, context, detail) => { if (context instanceof protocol.Actor) {