GetNumberOption = function (options, property, minimum, maximum, fallback) {
        let value = options[property];
        if (value !== undefined) {
            value = Internal.ToNumber(value);
            if (_.isNaN(value) || value < minimum || value > maximum) {
                platform.raiseOptionValueOutOfRange_3(String(value), property, `[${minimum} - ${maximum}]`);
            }
            return _.floor(value);
        }

        return fallback;
    }
Extracts the value of the property named property from the provided options object,
converts it to a Number value, checks whether it is in the allowed range,
and fills in a fallback value if necessary.

NOTE: this has known differences compared to the spec GetNumberOption in order to
support more verbose errors. It is more similar to DefaultNumberOption

ECMA402: #sec-defaultnumberoption

@param {Object} options user-provided options object
@param {String} property the property we are trying to get off of `options`
@param {Number} minimum minimum allowable value for options[property]
@param {Number} maximum maximum allowable value for options[property]
@param {Number} fallback return value if options[property] is undefined or invalid
@returns {Number}