Size: a a a

Советский Angular

2020 September 15

В

Владимир in Советский Angular
JSON Jenny 💖
мне лишний else тоже не нравится
Зови в чат его
источник

S

Smooth Operator in Советский Angular
Dmitriy Teplov
если что, в жс нет конструкции else if

так что это

if (...) { return }
else {
 if(...) { return }
}
а есть пруфы?
источник

DT

Dmitriy Teplov in Советский Angular
Smooth Operator
а есть пруфы?
источник

DT

Dmitriy Teplov in Советский Angular
но не исключено, что в движках могут быть какие-то оптимизации на этот счёт
источник

DT

Dmitriy Teplov in Советский Angular
давайте сделаем бенчмарк
источник

S

Smooth Operator in Советский Angular
jsperf лежит (
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Dmitriy Teplov
давайте сделаем бенчмарк
или bytecode посмотрим
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
[generated bytecode for function: ifif (0x1b5fc115e711 <SharedFunctionInfo ifif>)]
Parameter count 2
Register count 0
Frame size 0
  13 E> 0x1b5fc115f046 @    0 : a7                StackCheck
  21 S> 0x1b5fc115f047 @    1 : 25 02             Ldar a0
        0x1b5fc115f049 @    3 : 98 05             JumpIfToBooleanFalse [5] (0x1b5fc115f04e @ 😍
  34 S> 0x1b5fc115f04b @    5 : 25 02             Ldar a0
  43 S> 0x1b5fc115f04d @    7 : ab                Return
  51 S> 0x1b5fc115f04e @    8 : 25 02             Ldar a0
        0x1b5fc115f050 @   10 : 98 05             JumpIfToBooleanFalse [5] (0x1b5fc115f055 @ 15)
  64 S> 0x1b5fc115f052 @   12 : 25 02             Ldar a0
  73 S> 0x1b5fc115f054 @   14 : ab                Return
        0x1b5fc115f055 @   15 : 0d                LdaUndefined
  78 S> 0x1b5fc115f056 @   16 : ab                Return
Constant pool (size = 0)
Handler Table (size = 0)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
[generated bytecode for function: ifelseif (0x11aa4755e761 <SharedFunctionInfo ifelseif>)]
Parameter count 2
Register count 0
Frame size 0
  98 E> 0x11aa4755f10e @    0 : a7                StackCheck
 106 S> 0x11aa4755f10f @    1 : 25 02             Ldar a0
        0x11aa4755f111 @    3 : 98 05             JumpIfToBooleanFalse [5] (0x11aa4755f116 @ 😍
 119 S> 0x11aa4755f113 @    5 : 25 02             Ldar a0
 128 S> 0x11aa4755f115 @    7 : ab                Return
 138 S> 0x11aa4755f116 @    8 : 25 02             Ldar a0
        0x11aa4755f118 @   10 : 98 05             JumpIfToBooleanFalse [5] (0x11aa4755f11d @ 15)
 150 S> 0x11aa4755f11a @   12 : 25 02             Ldar a0
 159 S> 0x11aa4755f11c @   14 : ab                Return
        0x11aa4755f11d @   15 : 0d                LdaUndefined
 164 S> 0x11aa4755f11e @   16 : ab                Return
Constant pool (size = 0)
Handler Table (size = 0)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
@dersizes видишь разницу?
источник

IB

Igor Bodnar in Советский Angular
источник

S

Smooth Operator in Советский Angular
регистрые другие
источник

S

Smooth Operator in Советский Angular
🙂
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Smooth Operator
регистрые другие
могу сделать так, чтобы были одинаковые
источник

S

Smooth Operator in Советский Angular
Вертихвост キバ 🏡🦊
могу сделать так, чтобы были одинаковые
без возвратов сравни
источник

IB

Igor Bodnar in Советский Angular
Вертихвост キバ 🏡🦊
или bytecode посмотрим
тебя часто спрашивают, "а как ты сгенерил байткод для функции?"
источник

IB

Igor Bodnar in Советский Angular
Smooth Operator
без возвратов сравни
+
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Smooth Operator
без возвратов сравни
[generated bytecode for function: ifif (0x144e40dde711 <SharedFunctionInfo ifif>)]
Parameter count 2
Register count 0
Frame size 0
  13 E> 0x144e40ddf046 @    0 : a7                StackCheck
  21 S> 0x144e40ddf047 @    1 : 25 02             Ldar a0
        0x144e40ddf049 @    3 : 98 04             JumpIfToBooleanFalse [4] (0x144e40ddf04d @ 7)
  34 S> 0x144e40ddf04b @    5 : 25 02             Ldar a0
  48 S> 0x144e40ddf04d @    7 : 25 02             Ldar a0
        0x144e40ddf04f @    9 : 98 04             JumpIfToBooleanFalse [4] (0x144e40ddf053 @ 13)
  61 S> 0x144e40ddf051 @   11 : 25 02             Ldar a0
        0x144e40ddf053 @   13 : 0d                LdaUndefined
  72 S> 0x144e40ddf054 @   14 : ab                Return
Constant pool (size = 0)
Handler Table (size = 0)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
[generated bytecode for function: ifelseif (0x08c1dcbde761 <SharedFunctionInfo ifelseif>)]
Parameter count 2
Register count 0
Frame size 0
  92 E> 0x8c1dcbdf10e @    0 : a7                StackCheck
 100 S> 0x8c1dcbdf10f @    1 : 25 02             Ldar a0
        0x8c1dcbdf111 @    3 : 98 06             JumpIfToBooleanFalse [6] (0x8c1dcbdf117 @ 9)
 113 S> 0x8c1dcbdf113 @    5 : 25 02             Ldar a0
        0x8c1dcbdf115 @    7 : 8b 08             Jump [8] (0x8c1dcbdf11d @ 15)
 129 S> 0x8c1dcbdf117 @    9 : 25 02             Ldar a0
        0x8c1dcbdf119 @   11 : 98 04             JumpIfToBooleanFalse [4] (0x8c1dcbdf11d @ 15)
 141 S> 0x8c1dcbdf11b @   13 : 25 02             Ldar a0
        0x8c1dcbdf11d @   15 : 0d                LdaUndefined
 152 S> 0x8c1dcbdf11e @   16 : ab                Return
Constant pool (size = 0)
Handler Table (size = 0)
источник

AS

Anton Shvets in Советский Angular
лишний джамп
источник