/**
* Copyright (c) 2012-2016 André Bargull
* Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms.
*
* <https://github.com/anba/es6draft>
*/
package com.github.anba.es6draft.runtime.objects.number;
import com.github.anba.es6draft.runtime.ExecutionContext;
import com.github.anba.es6draft.runtime.Realm;
import com.github.anba.es6draft.runtime.types.Intrinsics;
import com.github.anba.es6draft.runtime.types.ScriptObject;
import com.github.anba.es6draft.runtime.types.builtins.OrdinaryObject;
/**
* <h1>20 Numbers and Dates</h1><br>
* <h2>20.1 Number Objects</h2>
* <ul>
* <li>20.1.4 Properties of Number Instances
* </ul>
*/
public class NumberObject extends OrdinaryObject {
/** [[NumberData]] */
private final double numberData;
/**
* Constructs a new Number object.
*
* @param realm
* the realm object
* @param numberData
* the number data
*/
NumberObject(Realm realm, double numberData) {
super(realm);
this.numberData = numberData;
}
/**
* Constructs a new Number object.
*
* @param realm
* the realm object
* @param numberData
* the number data
* @param prototype
* the prototype object
*/
public NumberObject(Realm realm, double numberData, ScriptObject prototype) {
super(realm);
this.numberData = numberData;
setPrototype(prototype);
}
/**
* [[NumberData]]
*
* @return the number value
*/
public double getNumberData() {
return numberData;
}
@Override
public String className() {
return "Number";
}
/**
* Creates a new Number object with the default %NumberPrototype% prototype object.
*
* @param cx
* the execution context
* @param numberData
* the number value
* @return the new number object
*/
public static NumberObject NumberCreate(ExecutionContext cx, double numberData) {
return new NumberObject(cx.getRealm(), numberData,
cx.getIntrinsic(Intrinsics.NumberPrototype));
}
/**
* Creates a new Number object.
*
* @param cx
* the execution context
* @param numberData
* the number value
* @param prototype
* the prototype object
* @return the new number object
*/
public static NumberObject NumberCreate(ExecutionContext cx, double numberData,
ScriptObject prototype) {
return new NumberObject(cx.getRealm(), numberData, prototype);
}
}