зеркало из https://github.com/mozilla/gecko-dev.git
60 строки
1.4 KiB
C++
60 строки
1.4 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/**
|
|
* NumberResult
|
|
* Represents the a number as the result of evaluating an Expr
|
|
**/
|
|
|
|
#include "mozilla/FloatingPoint.h"
|
|
|
|
#include "txExprResult.h"
|
|
|
|
/**
|
|
* Default Constructor
|
|
**/
|
|
|
|
/**
|
|
* Creates a new NumberResult with the value of the given double parameter
|
|
* @param dbl the double to use for initialization of this NumberResult's value
|
|
**/
|
|
NumberResult::NumberResult(double aValue, txResultRecycler* aRecycler)
|
|
: txAExprResult(aRecycler), value(aValue)
|
|
{
|
|
} //-- NumberResult
|
|
|
|
/*
|
|
* Virtual Methods from ExprResult
|
|
*/
|
|
|
|
short NumberResult::getResultType() {
|
|
return txAExprResult::NUMBER;
|
|
} //-- getResultType
|
|
|
|
void
|
|
NumberResult::stringValue(nsString& aResult)
|
|
{
|
|
txDouble::toString(value, aResult);
|
|
}
|
|
|
|
const nsString*
|
|
NumberResult::stringValuePointer()
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
bool NumberResult::booleanValue() {
|
|
// OG+
|
|
// As per the XPath spec, the boolean value of a number is true if and only if
|
|
// it is neither positive 0 nor negative 0 nor NaN
|
|
return (bool)(value != 0.0 && !mozilla::IsNaN(value));
|
|
// OG-
|
|
} //-- booleanValue
|
|
|
|
double NumberResult::numberValue() {
|
|
return this->value;
|
|
} //-- numberValue
|
|
|