Как эффективно построить список в обработчике в AppleScript?

Документация AppleScript предлагает следующий код для эффективного построения списка:

set bigList to {}
set bigListRef to a reference to bigList
set numItems to 100000
set t to (time of (current date)) --Start timing operations
repeat with n from 1 to numItems
    copy n to the end of bigListRef
end
set total to (time of (current date)) - t --End timing

Обратите внимание на использование явной ссылки. Это прекрасно работает на верхнем уровне скрипта или в явном обработчике выполнения, но если вы выполняете тот же самый точный код в другом обработчике, например так:

on buildList()
    set bigList to {}
    set bigListRef to a reference to bigList
    set numItems to 100000
    set t to (time of (current date)) --Start timing operations
    repeat with n from 1 to numItems
        copy n to the end of bigListRef
    end
    set total to (time of (current date)) - t --End timing
end buildList
buildList()

он ломается, выдавая сообщение об ошибке "Можно'сделать из bigList ссылку на тип. " Почему это ломается, и как правильно построить список в обработчике, отличном от run ()?

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

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