diff --git a/src/document.js b/src/document.js index 418987d0b40..94e8b9c0dbf 100644 --- a/src/document.js +++ b/src/document.js @@ -46,7 +46,7 @@ var Document = function(textOrLines) { this.setValue = function(text) { var len = this.getLength() - 1; this.remove(new Range(0, 0, len, this.getLine(len).length)); - this.insert({row: 0, column: 0}, text); + this.insert({row: 0, column: 0}, text || ""); }; /** diff --git a/src/edit_session_test.js b/src/edit_session_test.js index 2707000a4d7..76a1ed2fc9f 100644 --- a/src/edit_session_test.js +++ b/src/edit_session_test.js @@ -498,6 +498,21 @@ module.exports = { assert.equal(session.$foldData.length, 0); }, + "test setting undefined value": function() { + var session = createFoldTestSession(); + var editor = new Editor(new MockRenderer(), session); + editor.setOption("mode", new JavaScriptMode()); + + editor.setValue("test"); + assert.equal(session.getValue(), "test"); + + editor.setValue(undefined); + assert.equal(session.getValue(), ""); + + editor.setValue("test"); + assert.equal(session.getValue(), "test"); + }, + "test foldOther": function() { var session = new EditSession("{\n\t1{\n\t\t\n\t\t1.1 {\n\t\t}\n\t}\n\t2 {\n\t\t2.1 {\n\t\t\t2.2 {\n\t\t\t}\n\t\t\t2.3 {\n\t\t\t}\n\t\t}\n\t}\n}\n\n{\n}"); var editor = new Editor(new MockRenderer(), session);