Что ReturnIfAbrupt означает в проекте ES6?

В настоящее время я внедряю некоторые прокладки для проекта ES6. Я'мне интересно, если кто-нибудь может сказать мне, чтоReturnIfAbrupt средства. Например, моя реализация дляNumber.toInt (который вызывает внутренний[[ToInteger]] как следует:

if (!('toInt' in Number))
    Object.defineProperty(Number, 'toInt', {

        value: function toInt(value) {
            // ECMA-262 Ed. 6, 9-27-12. 9.1.4

            // 1. Let number be the result of calling ToNumber on the input argument.
            var number = Number(value);

            // 2. ReturnIfAbrupt(number).
            // ?

            // 3. If number is NaN, return +0.
            if (number != number) return 0;

            // 4. If number is +0, -0, +Infinity, or -Infinity, return number.
            if (number == 0 || 1 / number == 0) return number;

            // 5. Return the result of computing sign(number) * floor(abs(number)).
            return (n < 0 ? -1 : 1) * Math.floor(Math.abs(number));

        },

        writable: true,
        configurable: true

    });

Шаг 2ReturnIfAbrupt(number), Вы'Заметьте, у меня есть// ? за этот шаг, потому что яЯ не уверен, что делать. Что это значит, когда говорит?ReturnIfAbrupt(...)

Я прочитал разделReturnIfAbrupt в проекте, однако я не могу понять, чтоделать для шага 2, что поставить вместо// ? в коде выше.

Из моего чтения может быть, что ничего не должно быть сделано, иReturnIfAbrupt шаг просто означает, что любая ошибка, возникшая в ToNumber, распространяется вверх, выходя из функции. Тем не менее, это кажется слишком многословным, так как я думаю, что само собой разумеется. Кроме того, это немне кажетсяToNumber может даже выдать ошибку. Может ли кто-нибудь подтвердить или помочь мне понять настоящий смысл?

Ответы на вопрос(1)

Ваш ответ на вопрос