¿Qué significa ReturnIfAbrupt en el borrador de ES6?

Actualmente estoy implementando algunos shims para el borrador de ES6. Me pregunto si alguien me puede decir queReturnIfAbrupt medio. Por ejemplo, mi implementación paraNumber.toInt (que llama interna[[ToInteger]] es como sigue:

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

    });

El paso 2 esReturnIfAbrupt(number). Notarás que actualmente tengo// ? Para ese paso porque no estoy seguro de qué hacer. ¿Qué significa cuando diceReturnIfAbrupt(...)?

He leído la sección sobreReturnIfAbrupt en el borrador, sin embargo no puedo entender quéhacer para el paso 2, qué poner en lugar de// ? en el código de arriba.

De mi lectura, puede ser que no se deba hacer nada, y laReturnIfAbrupt paso simplemente significa permitir que cualquier error que se haya producido en ToNumber para propagarse hacia arriba, salga de la función. Sin embargo, eso parece demasiado verboso, ya que creo que podría ir sin decirlo. Además, no me parece que me guste.ToNumber Incluso puede lanzar un error. ¿Podría alguien confirmarme o ayudarme a entender el significado real?

Respuestas a la pregunta(1)

Su respuesta a la pregunta