- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
function call_func_1(
f: () => void
) {
f();
}
function call_func(
f: (o: object) => void,
user: { firstName: string }
) {
f(user);
}
function main() {
const user = {
firstName: "World",
sayHi() {
print(`Hello ${this.firstName}`);
},
};
user.sayHi();
const hi = user.sayHi;
hi();
let hi2 = user.sayHi;
hi2();
call_func_1(() => {
hi2();
});
call_func(user.sayHi, user);
print("done.");
}
ASD_77 10.08.2021 20:21 # +1
ASD_77 10.08.2021 20:22 # +1
ASD_77 10.08.2021 20:23 # +1
1024-- 10.08.2021 20:26 # 0
лайкнул, подписался, нажал на колокольчик и включил все уведомления
ASD_77 10.08.2021 20:50 # +2
PolinaAksenova 10.08.2021 20:52 # +2
CHayT 10.08.2021 21:59 # +1
3.14159265 10.08.2021 20:56 # +1
А кстати в js не завозили такой штуки, чтобы указать чтоб функция не видела, и не хватала внешние пельменные.
А коли встретит такую пельменную вываливась в райнтайме?
Про static я знаю, но ему нужны классы и это какая-то Йажа.
guest6 10.08.2021 21:06 # +3
Пункция самозахватывает кложай любое переменную, которую ты потрогал.
Отказаться от такого сервиса можно в С++ и PHP, вроде больше нигде нельзя
ASD_77 10.08.2021 21:14 # 0
guest6 10.08.2021 21:22 # +2
Но это нормально: GCшники должны страдать
3.14159265 10.08.2021 21:24 # 0
Оно же всё-равно лолжно тянуть и хранить внешний конь-текст.
Функция захватила пельменные и пока мы держим ссылку на функцию gc не может собрать захваченную питушню. Или нет?
3.14159265 10.08.2021 21:21 # 0
Вот именно поэтому я за С++.
А в PHP как делать?
ASD_77 10.08.2021 22:02 # 0
guest6 10.08.2021 22:04 # +1
COPOKA 10.08.2021 22:03 # +2
Реальный пример:
https://ideone.com/qiJZcV
guest6 10.08.2021 22:04 # 0
COPOKA 10.08.2021 22:05 # +1
MAKAKA 10.08.2021 22:13 # +2
https://youtu.be/dJ9hJ55hHzs?t=122
Кстати, "сорокоманы" это питерское. Была такая газета "Сорока", у неё было приложение "клуб 801".. Или я рассказывал уже?
COPOKA 10.08.2021 22:22 # +1
Некоторые сороки ещё, как и другие врановые, умеют пародировать других птиц и людей.
ru66oH4uk 11.08.2021 01:58 # 0
Врановые много чего могут, он вообще очень умные
Сорока проходит "зеркальный тест"
Hacpy 11.08.2021 03:33 # 0
guest6 25.09.2023 22:54 # 0
фон заебис
guest6 25.09.2023 23:34 # 0
Tike 26.09.2023 09:55 # 0
Опять роутеры угоняешь?
Desktop 26.09.2023 11:53 # 0
3.14159265 10.08.2021 22:24 # +1
Явное лучше неявного, особенно когда из огромного контекста нужно захватить 1 пельменную.
А есть use(*), ну вроде крестового [=]?
COPOKA 10.08.2021 22:31 # +2
https://www.php.net/manual/ru/functions.anonymous.php
А нет, в «PHP 7.4» добавили стрелочные функции, как в новом «JS», они затягивают весь контекст:
https://www.php.net/manual/ru/functions.arrow.php
Вот взяли и всё испортили.
3.14159265 11.08.2021 15:42 # +2
А мне нравится.
Для быстрого и бездумного скриптушения зделали стрелки.
Но при этом остаётся чуть более длинный advanced синтаксис, в проблемных местах можно оптимизировать.
Немного неконсистентно, но это же рнр…
При этом функции по умолчанию чистенькие и не хватаются за внешние контексты.
COPOKA 10.08.2021 22:37 # 0
В «Питоне» есть слова «global» и «nonlocal», но я не помню, в каких ситуациях они могут помочь.
3.14159265 10.08.2021 22:54 # +2
https://blog.meteor.com/an-interesting-kind-of-javascript-memory-leak-8b47d2e7f156
COPOKA 10.08.2021 22:57 # 0
Меня в «Medium» уже больше года «Cloudflare» не пускает.
3.14159265 10.08.2021 23:04 # +1
COPOKA 10.08.2021 23:08 # +1
Soul_re@ver 10.08.2021 23:10 # 0
Как там в 2010?
COPOKA 10.08.2021 23:27 # +1
rotoeb 10.08.2021 23:32 # +3
PolinaAksenova 10.08.2021 23:35 # −1
COPOKA 10.08.2021 23:40 # +1
rotoeb 10.08.2021 23:41 # +3
Кстати, ещё один интересный момент: помнится, год-полтора назад Павлик Дуров объявлял конкурс на разработку нового веб-клиента Telegram, и объявлял не как-нибудь, а с понтом - особо подчеркнул, что новый клиент не должен использовать какие-либо сторонние библиотеки и должен использовать исключительно мощь чистого JS и CSS.
И что? Сейчас открываю новый веб-клиент - а там WebPack... А вместе с ним - и тонны ненужного мусора. И в чём был смысл такого требования?
bootcamp_dropout 11.08.2021 00:43 # 0
Пока эти светлые времена не настали, приходится ебаться с вебпаком
guest6 11.08.2021 00:46 # +1
bootcamp_dropout 11.08.2021 00:47 # 0
guest6 11.08.2021 00:49 # 0
bootcamp_dropout 11.08.2021 00:50 # 0
Даже 200 из них качать заебешься
guest6 11.08.2021 00:55 # 0
bootcamp_dropout 11.08.2021 00:57 # 0
guest6 11.08.2021 00:59 # 0
bootcamp_dropout 11.08.2021 01:03 # 0
В http2 ебаться не надо и я бы не ставил вебпак
guest6 11.08.2021 01:05 # 0
guest6 11.08.2021 01:50 # 0
Вообще нет причины НЕ использовать HTTP2, кроме пизданутых фронтов в облаках
3.14159265 11.08.2021 01:55 # +4
Какое зожатие )))
guest6 11.08.2021 01:57 # 0
может, уже исправили?
3.14159265 11.08.2021 02:00 # 0
Может уже нашли новые, но ещё не сообщили о них лалкам?
Опять мы приходим к тому о чём я уже говорил:
https://govnokod.ru/26767#comment555379
ru66oH4uk 11.08.2021 02:02 # 0
Но если выбирать между 1.1. и 2, то я за 2, особенно когда надо скачать 200 файлов
3.14159265 11.08.2021 02:06 # 0
In hpack_dht_insert in hpack-tbl.c in the HPACK decoder in HAProxy 1.8 through 2.x before 2.1.4, a remote attacker can write arbitrary bytes around a certain location on the heap via a crafted HTTP/2 request, possibly causing remote code execution.
Блять, ну вот как так, а?
ru66oH4uk 11.08.2021 02:07 # 0
А что вообще случилось? Код для работы с HTTP стали писать вчерашние школьники, изучившие малёха веб-программирование?
3.14159265 11.08.2021 02:11 # 0
> In hpack_dht_insert in hpack-tbl.c in the HPACK decoder
> via a crafted HTTP/2 request, possibly causing remote code execution.
А главное, я же сразу писал, ну сделайте бинарный прот.
Перенумеруйте все частоиспользуемые заголовки и реализация этого говна упростится в сотни раз. Нет, нужно выдумать сложную питушню и десяток раз в ней обосраться.
Hacpy 11.08.2021 10:48 # +1
Как будто это поможет. Набежавшие обезьяны всё равно будут парсить.
Именно в них причина, а не в оверинжирном проктоколе.
guest6 25.09.2023 22:56 # 0
ну как насрал?
ASD_77 11.08.2021 14:31 # 0
bootcamp_dropout 11.08.2021 15:27 # 0
MAKAKA 11.08.2021 16:19 # 0
MAKAKA 11.08.2021 14:34 # +1
Мы сначала делаем из веточек шалаш, потом мажем его какашками, потом пытается сделать так, чтобы он выдержал ядерный взрыв: изобретаем специальную еду, после которой какашки более крепкие
А ты предлагаешь сразу бункер строить
3.14159265 11.08.2021 02:42 # 0
Ня! ietf.org по-прежнему отдаёт всем 1.1
guest6 11.08.2021 02:50 # 0
статику нет
да и ты сам попросил))
проверь в хоме в дев туулс в нетворк
3.14159265 11.08.2021 03:01 # 0
guest6 11.08.2021 03:20 # 0
https://postimg.cc/wtny4m7W
3.14159265 11.08.2021 03:25 # 0
Там вся полезная инфа выведена не картинками, а псевдографикой.
Потому картиночки и минифицированные жсы они на работоспособность этого сайта не влияют вообще никак (зашёл с noscript).
3.14159265 11.08.2021 03:10 # +2
Оказывается анскилябры сделали вот что.
Почему-то в стандарте единый словарь для запросов и ответов.
То есть даже здесь обосрались, т.к. статический словарь зделан плохо, тупо: разосрали пространство кодов.
Логично что при запросе нам бесполезны записи в словаре :status 200 или хедеры вроде content-type.
А при парсинге ответа зачем хранить :path /index.html, :method GET, :method POST и accept хедеры.
Они практически НИКОГДА не встретятся.
Во всех стандартах вроде видео-кодеков используется контекстное зожатие, когда есть несколько моделей/контекстов и выбирается самая подходящая (CABAC).
А тут запрос/ответ, форматы разные. Оно само собой напрашивается.
COPOKA 11.08.2021 10:33 # 0
bormand 11.08.2021 15:44 # 0
Они хоть веса этим хедерам присвоили? Или все равновероятны?
3.14159265 11.08.2021 15:50 # +1
По-моему равновореанты. В таблице 61 элемент, почему именно 61 я не помню, вроде им кодового пространства не хватало.
Но потом каждая запись из таблицы проходит статического хаффмана.
Это чтобы протокол был человекочитабельнее )))
И превращается в 1 бат зожатия информации.
bormand 11.08.2021 15:51 # 0
А, ну может на этом уровне вносится разница между запросом и ответом и некоторые значения остаются без кодов?
Или хаффман там одинаковый и туды и сюды?
3.14159265 11.08.2021 15:52 # +2
Да. И выровненный по батам.
0x82 — это всегда method GET
0x88 — status 200
То есть они кодовое пространство этого бата использовали нихуя не оптимально.
Хаффман там больше для того чтобы зожимать цифробуквы, которых нету в словаре.
bormand 11.08.2021 15:56 # +2
Какой анскилл )))
Карго-культ 99лвл. Интересно, чуваки вообще задумывались, зачем им хаффман?
3.14159265 11.08.2021 16:04 # +1
Пушо оно может работать и без хаффмана, только со словарём.
Тогда получается бинарная питушня с вкрапленями текста. Ну как орешки в говнеце.
bormand 11.08.2021 16:04 # 0
Так всё-таки на 1 бат равняется каждый код или весь заголовок в конце?
3.14159265 11.08.2021 16:06 # 0
Всё что мимо словаря может идти плейнтекстом или опционально зожато фофманом.
bormand 11.08.2021 16:12 # 0
3.14159265 11.08.2021 16:13 # +1
Принцимп мухи )))
Тут и паддинг по октетам и EOS.
> rfc'шку на это говно.
Кстати я наконец-то понял Юрца, почему именно «мухи».
bormand 11.08.2021 16:20 # 0
3.14159265 11.08.2021 16:28 # 0
Там нет lz.
bormand 11.08.2021 16:35 # 0
Даже в сраном DNS есть зайчатки lz с отсылками к предыдущим полям. А тут нету. А ведь можно было на старые запросы ссылаться, в них половина хедера повторяется, такой простор для зожатия...
3.14159265 11.08.2021 16:46 # +2
Уже обосрались в SPDY c CRIME.
https://govnokod.ru/26767#comment555379
http://netifera.com/research/crime/CRIME_ekoparty2012.pdf
MAKAKA 11.08.2021 16:04 # 0
Desktop 26.09.2023 11:51 # 0
COPOKA 11.08.2021 10:42 # +1
Hacpy 11.08.2021 10:52 # +1
и они статические
COPOKA 11.08.2021 11:29 # 0
Зачем? Зачем? Из-за длинных заголовков «content-security-policy» и «X-Frame-Options»?
COPOKA 11.08.2021 01:09 # 0
rotoeb 11.08.2021 01:11 # +2
1024-- 11.08.2021 18:21 # 0
https://youtu.be/Vq0bKROEm-c
1024-- 11.08.2021 18:19 # 0
А Node.JS тут причём? Он не ворует память на клиенте.
А сколько он займёт на сервере - дело программиста. Если программист не смузихлёб, то целый сервер будет жрать памяти меньше, чем одна вкладка типичного сайта в браузере.
PolinaAksenova 11.08.2021 22:38 # +4
Как это нят?
https://gcode.space/ngk.js
(@^◡^)
rotoeb 11.08.2021 22:39 # +1
MAKAKA 11.08.2021 22:43 # +1
Hacpy 11.08.2021 00:05 # 0
3.14159265 10.08.2021 23:12 # +1
Но сам факт что каждому кто реализует язык нужно пердолиться. Потому мне интересно как эта питушня реализована в компиляторе у ОПа?
I'm a very lazy (oops) language implementer. Every time but one when I've implemented closures, I took the quick approach of just copying the entire frame to the heap.
The other time, I was able to do more data flow analysis, but it also resulted in a bunch of annoying fiddly bugs and took more maintenance.
I'm not suggesting the v8 team took the 'easy way' out, but doing the deep introspection is hard, and in an environment such as a browser, I can see trading a pathological case such as this for what must be 1,000,000,000 inappropriate aggressive gc bugs.
guest6 11.08.2021 01:55 # −1
Крестоблядь хотя-бы понимает что у нее где лежит.
А GC-блядь да еще и с неявным захватом кложей может запутаться и узнать о лике через пол года, когда случится ООМ
PolinaAksenova 10.08.2021 22:58 # 0
PolinaAksenova 10.08.2021 23:03 # +3
Как видня, замыкание захватывает только те локальные переменные, которые в нём упомянуты.
bormand 11.08.2021 01:11 # +1
При зохавывании по значению достаточно просто скопировать нужные переменные в контекст лямбды.
Arbatan_Pokrovan 11.08.2021 09:49 # 0