/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Check that simple JS can be parsed and cached with the reflection API.
 */

function test() {
  let { Parser } = Cu.import("resource://devtools/shared/Parser.jsm", {});

  let source = "let x = 42;";
  let parser = new Parser();
  let first = parser.get(source);
  let second = parser.get(source);

  isnot(first, second,
    "The two syntax trees should be different.");

  let third = parser.get(source, "url");
  let fourth = parser.get(source, "url");

  isnot(first, third,
    "The new syntax trees should be different than the old ones.");
  is(third, fourth,
    "The new syntax trees were cached once an identifier was specified.");

  is(parser.errors.length, 0,
    "There should be no errors logged when parsing.");

  finish();
}
