Add silly optimization for 'new'; this will be removed when compiler improves
parent
3885ba02a6
commit
11eff11fb7
|
@ -21,6 +21,11 @@ M: ast-name compile-ast name>> swap lookup-reader ;
|
||||||
: compile-arguments ( lexenv ast -- quot )
|
: compile-arguments ( lexenv ast -- quot )
|
||||||
arguments>> [ compile-ast ] with map [ ] join ;
|
arguments>> [ compile-ast ] with map [ ] join ;
|
||||||
|
|
||||||
|
: compile-new ( lexenv ast -- quot )
|
||||||
|
[ receiver>> compile-ast ]
|
||||||
|
[ compile-arguments ] 2bi
|
||||||
|
[ new ] 3append ;
|
||||||
|
|
||||||
: compile-ifTrue:ifFalse: ( lexenv ast -- quot )
|
: compile-ifTrue:ifFalse: ( lexenv ast -- quot )
|
||||||
[ receiver>> compile-ast ]
|
[ receiver>> compile-ast ]
|
||||||
[ compile-arguments ] 2bi
|
[ compile-arguments ] 2bi
|
||||||
|
@ -29,6 +34,7 @@ M: ast-name compile-ast name>> swap lookup-reader ;
|
||||||
M: ast-message-send compile-ast
|
M: ast-message-send compile-ast
|
||||||
dup selector>> {
|
dup selector>> {
|
||||||
{ "ifTrue:ifFalse:" [ compile-ifTrue:ifFalse: ] }
|
{ "ifTrue:ifFalse:" [ compile-ifTrue:ifFalse: ] }
|
||||||
|
{ "new" [ compile-new ] }
|
||||||
[
|
[
|
||||||
drop
|
drop
|
||||||
[ compile-arguments ]
|
[ compile-arguments ]
|
||||||
|
|
Loading…
Reference in New Issue