Size: a a a

Compiler Development

2020 January 20

А

Алексей in Compiler Development
Kir
В TC типы высоких порядков есть?
да вроде нет
источник

K

Kir in Compiler Development
Покрытое UB полностью, "если что-то выглядит, как объявление - это оно и есть", SFINAE и прочая херня
источник

А

Алексей in Compiler Development
Alexander Tchitchigin
Можно. Поведение this - объективно сложно, во всех языках, компилирующихся в JS его упростили, начиная с CoffeeScript заканчивая Dart. Добавили классы, которые синт. сахар и слово class - не ключевое, ибо обратная совместимость, добавили get/set, которые тоже в синтаксис не вписываются, добавили обрезанные промисы и async/await, который в них дешугарится и нифига не композится.
Такими темпами скоро догонят C++ - всё нормально.
TypeScript уже догнал и местами перегнал. Good job, Microsoft. 👏
а можно пожалуйста пояснить про "нифига не композится"?
источник

А

Алексей in Compiler Development
и что с this там такого сложного?
источник

K

Kir in Compiler Development
Боже, чего в javascript с this сложного?
источник

K

Kir in Compiler Development
Всё
источник

K

Kir in Compiler Development
Начиная с того, что function не захватывает this лексически, а () => захватывает. Вообще, this-захват тема крайне скользкая.
источник

А

Алексей in Compiler Development
а что тут сложного?
источник

А

Алексей in Compiler Development
ну то есть понятно, что по дурацки сделано
источник

А

Алексей in Compiler Development
но я бы не сказал, что сложно
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Мне непонятно нафига оно надо, если оно unsound?
Потому что идея была не сделать новый язык в чистом поле, а обуздать уже разросшиеся джунгли джаваскрипта
источник

AK

Andrei Kurosh in Compiler Development
Kir
Начиная с того, что function не захватывает this лексически, а () => захватывает. Вообще, this-захват тема крайне скользкая.
Вы в одном приложении описали практически все, что нужно знать про this
источник

M

MaxGraey in Compiler Development
Kir
Начиная с того, что function не захватывает this лексически, а () => захватывает. Вообще, this-захват тема крайне скользкая.
то ли дело лямбды в C++ =)
источник

K

Kir in Compiler Development
И заканчивая тем, что при извлечении методов из объектов this становится null. И это я ещё не начинал про подмену и встраивание прототипов в цепочку прототипов.
источник

K

Kir in Compiler Development
В плюсолямбдах можно руками указать захват this
источник

K

Kir in Compiler Development
В отличие от
источник

А

Алексей in Compiler Development
Kir
И заканчивая тем, что при извлечении методов из объектов this становится null. И это я ещё не начинал про подмену и встраивание прототипов в цепочку прототипов.
это уже другие вещи вообще-то
источник

AK

Andrei Kurosh in Compiler Development
Kir
И заканчивая тем, что при извлечении методов из объектов this становится null. И это я ещё не начинал про подмену и встраивание прототипов в цепочку прототипов.
Потому что в джиесе нет ООП в привычном понимании - там все есть словарь, а вместо методов поля с функциями
источник

K

Kir in Compiler Development
Поздно, у меня уже баттхерт от этого dumpster fire of a language
источник

А

Алексей in Compiler Development
а типа от крестов баттехрта нет чтоли?
источник