Как консоль Safari Javascript предсказывает свойства несуществующих объектов? - PullRequest
0 голосов
/ 20 ноября 2018

Обратите внимание, я не смог воспроизвести это поведение в Chrome или Firefox, только в Safari.

Допустим, у меня есть функция с двумя возможными случайно выбранными возвращаемыми значениями: { foo: 'test' } и { bar: 'test' }.

function getObj() {
    console.log('This code has been executed.');
    if (Math.random() > 0.5) {
        return { foo: 'test' };
    } else {
        return { bar: 'test' };
    }
}

Когда я набираю вызов функции , но не нажимаю «ввод» , предсказания Safari могут по-прежнему делать предположения о возвращаемом значении. Иногда он видит одно возвращаемое значение, иногда он видит другое.

Иногда один:

enter image description here

Иногда другие:

enter image description here

Очевидно, что просто набрав вызов функции, я не вызываю функцию , как я понимаю , и я не вижу console.log, говорящий «Этот код был выполнен». Как Safari это сделать?

...