// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

debug = function debug(msg)
{
  console.log(msg);
};

description = function description(msg, quiet)
{
  console.log(msg);
};

finishJSTest = function finishJSTest() {
  console.log("TEST FINISHED");
};

function isWorker()
{
  // It's conceivable that someone would stub out 'document' in a worker so
  // also check for childNodes, an arbitrary DOM-related object that is
  // meaningless in a WorkerContext.
  return (typeof document === 'undefined' ||
          typeof document.childNodes === 'undefined') && !!self.importScripts;
}

function handleTestFinished() {
  if (!window.jsTestIsAsync)
    finishJSTest();
}

// Returns a sorted array of property names of object.  This function returns
// not only own properties but also properties on prototype chains.
function getAllPropertyNames(object) {
    var properties = [];
    for (var property in object) {
        properties.push(property);
    }
    return properties.sort();
}

if (!isWorker()) {
  window.addEventListener('DOMContentLoaded', handleTestFinished, false);
}