Blame dom/bindings/Date.h

Packit f0b94e
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
Packit f0b94e
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
Packit f0b94e
/* This Source Code Form is subject to the terms of the Mozilla Public
Packit f0b94e
 * License, v. 2.0. If a copy of the MPL was not distributed with this
Packit f0b94e
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
Packit f0b94e
Packit f0b94e
/* Representation for dates. */
Packit f0b94e
Packit f0b94e
#ifndef mozilla_dom_Date_h
Packit f0b94e
#define mozilla_dom_Date_h
Packit f0b94e
Packit f0b94e
#include "js/Date.h"
Packit f0b94e
#include "js/TypeDecls.h"
Packit f0b94e
Packit f0b94e
namespace mozilla {
Packit f0b94e
namespace dom {
Packit f0b94e
Packit f0b94e
class Date {
Packit f0b94e
 public:
Packit f0b94e
  Date() {}
Packit f0b94e
  explicit Date(JS::ClippedTime aMilliseconds)
Packit f0b94e
      : mMsecSinceEpoch(aMilliseconds) {}
Packit f0b94e
Packit f0b94e
  bool IsUndefined() const { return !mMsecSinceEpoch.isValid(); }
Packit f0b94e
Packit f0b94e
  JS::ClippedTime TimeStamp() const { return mMsecSinceEpoch; }
Packit f0b94e
Packit f0b94e
  // Returns an integer in the range [-8.64e15, +8.64e15] (-0 excluded), *or*
Packit f0b94e
  // returns NaN.  DO NOT ASSUME THIS IS FINITE!
Packit f0b94e
  double ToDouble() const { return mMsecSinceEpoch.toDouble(); }
Packit f0b94e
Packit f0b94e
  void SetTimeStamp(JS::ClippedTime aMilliseconds) {
Packit f0b94e
    mMsecSinceEpoch = aMilliseconds;
Packit f0b94e
  }
Packit f0b94e
Packit f0b94e
  // Can return false if CheckedUnwrap fails.  This will NOT throw;
Packit f0b94e
  // callers should do it as needed.
Packit f0b94e
  bool SetTimeStamp(JSContext* aCx, JSObject* aObject);
Packit f0b94e
Packit f0b94e
  bool ToDateObject(JSContext* aCx, JS::MutableHandle<JS::Value> aRval) const;
Packit f0b94e
Packit f0b94e
 private:
Packit f0b94e
  JS::ClippedTime mMsecSinceEpoch;
Packit f0b94e
};
Packit f0b94e
Packit f0b94e
}  // namespace dom
Packit f0b94e
}  // namespace mozilla
Packit f0b94e
Packit f0b94e
#endif  // mozilla_dom_Date_h