objeto XMLHttpRequest

Hola a todos.
En internet he encontrado infinidad de metodos para crear el objeto XMLHttpRequest, el mas simple por ej.:

function obj_ajax() {
  if (window.XMLHttpRequest) {
    return new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
}

Sin embargo, encontre un borrado de W3C sobre XMLHttpRequest, en el cual aparecia el siguiente codigo:

[NoInterfaceObject]
interface XMLHttpRequestEventTarget : EventTarget {
  // for future use
};

[Constructor]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
  // event handler attributes
  attribute Function onreadystatechange;

  // states
  const unsigned short UNSENT = 0;
  const unsigned short OPENED = 1;
  const unsigned short HEADERS_RECEIVED = 2;
  const unsigned short LOADING = 3;
  const unsigned short DONE = 4;
  readonly attribute unsigned short readyState;

  // request
  void open(DOMString method, DOMString url);
  void open(DOMString method, DOMString url, boolean async);
  void open(DOMString method, DOMString url, boolean async, DOMString? user);
  void open(DOMString method, DOMString url, boolean async, DOMString? user, DOMString? password);
  void setRequestHeader(DOMString header, DOMString value);
  void send();
  void send(Document data);
  void send([AllowAny] DOMString? data);
  void abort();

  // response
  readonly attribute unsigned short status;
  readonly attribute DOMString statusText;
  DOMString getResponseHeader(DOMString header);
  DOMString getAllResponseHeaders();
  readonly attribute DOMString responseText;
  readonly attribute Document responseXML;
};

Por esas cosas de la vida copie este codigo y lo pegue en un archivo de texto y lo renombre a ajax.js
Me lleve una gran sorpresa, cuando elimine el primer codigo y empece a trabajar con el borrador de W3C.
Ahora tengo otra forma de crear el objeto XMLHttpRequest.
Sin embargo, en firebug aparece un pequeño error que indica:
missing ; before statement
interface XMLHttpRequestEventTarget : EventTarget {\n

Sin embargo, esto no impide la ejecucion del codigo y se ejecuta ajax sin problemas.
Preguntas:
- Esta bien haber copado el codigo y haberlo implementado de esta forma.
- Existe un metodo mas adecuado para crear el objeto de acuerdo al borrador del W3C.

Saludos.