diff --git a/lib/XMLHttpRequest.js b/lib/XMLHttpRequest.js index 4893913..4e25174 100644 --- a/lib/XMLHttpRequest.js +++ b/lib/XMLHttpRequest.js @@ -15,7 +15,7 @@ var Url = require("url"); var spawn = require("child_process").spawn; var fs = require("fs"); -exports.XMLHttpRequest = function() { +function XMLHttpRequest() { "use strict"; /** @@ -86,16 +86,6 @@ exports.XMLHttpRequest = function() { // Event listeners var listeners = {}; - /** - * Constants - */ - - this.UNSENT = 0; - this.OPENED = 1; - this.HEADERS_RECEIVED = 2; - this.LOADING = 3; - this.DONE = 4; - /** * Public vars */ @@ -618,3 +608,34 @@ exports.XMLHttpRequest = function() { } }; }; + +/** + * Constants + */ + +[XMLHttpRequest, XMLHttpRequest.prototype].forEach(function(obj) { + Object.defineProperties(obj, { + UNSENT: { + value: 0 + }, + + OPENED: { + value: 1 + }, + + HEADERS_RECEIVED: { + value: 2 + }, + + LOADING: { + value: 3 + }, + + DONE: { + value: 4 + } + }); +}); + +exports.XMLHttpRequest = XMLHttpRequest; + diff --git a/tests/test-constants.js b/tests/test-constants.js index 372e46c..20a9181 100644 --- a/tests/test-constants.js +++ b/tests/test-constants.js @@ -3,7 +3,14 @@ var sys = require("util") , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest , xhr = new XMLHttpRequest(); -// Test constant values +// Test constant values in class +assert.equal(0, XMLHttpRequest.UNSENT); +assert.equal(1, XMLHttpRequest.OPENED); +assert.equal(2, XMLHttpRequest.HEADERS_RECEIVED); +assert.equal(3, XMLHttpRequest.LOADING); +assert.equal(4, XMLHttpRequest.DONE); + +// Test constant values in instance assert.equal(0, xhr.UNSENT); assert.equal(1, xhr.OPENED); assert.equal(2, xhr.HEADERS_RECEIVED);