/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/*
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/licenses/publicdomain/
 * Contributor: 
 */


/**
 *  File Name:          template.js
 *  Reference:          ** replace with bugzilla URL or document reference **
 *  Description:        ** replace with description of test **
 *  Author:             ** replace with your e-mail address **
 */

var SECTION = "";          // if ECMA test, provide section number
var VERSION = "ECMA_2";    // Version of JavaScript or ECMA
var TITLE   = "";          // Provide ECMA section title or description
var BUGNUMBER = "";        // Provide URL to bugsplat or bugzilla report

startTest();               // leave this alone


/* Calls to AddTestCase here */

test();                    // leave this alone
