// Copyright 2013 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/**
 * @description Tests that the options minimumSignificantDigits and
 *     maximumSignificantDigits are read in the right sequence.
 * @author Norbert Lindenberg
 */

var read = 0;

function readMinimumSignificantDigits() {
    ++read;
    if (read === 1) {
        return 0; // invalid value, but on first read that's OK
    } else if (read === 3) {
        return 1; // valid value
    } else {
        $ERROR("minimumSignificantDigits read out of sequence: " + read + ".");
    }
}

function readMaximumSignificantDigits() {
    ++read;
    if (read === 2) {
        return 0; // invalid value, but on first read that's OK
    } else if (read === 4) {
        return 1; // valid value
    } else {
        $ERROR("maximumSignificantDigits read out of sequence: " + read + ".");
    }
}

var options = {};
Object.defineProperty(options, "minimumSignificantDigits",
    { get: readMinimumSignificantDigits });
Object.defineProperty(options, "maximumSignificantDigits",
    { get: readMaximumSignificantDigits });

new Intl.NumberFormat("de", options);

if (read !== 4) {
    $ERROR("insuffient number of property reads: " + read + ".");
}
