Add silly optimization for 'new'; this will be removed when compiler improves

db4
Slava Pestov 2009-04-01 02:53:30 -05:00
parent 3885ba02a6
commit 11eff11fb7
1 changed files with 6 additions and 0 deletions

View File

@ -21,6 +21,11 @@ M: ast-name compile-ast name>> swap lookup-reader ;
: compile-arguments ( lexenv ast -- quot )
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 )
[ receiver>> compile-ast ]
[ compile-arguments ] 2bi
@ -29,6 +34,7 @@ M: ast-name compile-ast name>> swap lookup-reader ;
M: ast-message-send compile-ast
dup selector>> {
{ "ifTrue:ifFalse:" [ compile-ifTrue:ifFalse: ] }
{ "new" [ compile-new ] }
[
drop
[ compile-arguments ]