]> gitweb.factorcode.org Git - factor.git/commitdiff
Add silly optimization for 'new'; this will be removed when compiler improves
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 1 Apr 2009 07:53:30 +0000 (02:53 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 1 Apr 2009 07:53:30 +0000 (02:53 -0500)
extra/smalltalk/compiler/compiler.factor

index 0b6f17e3fafb026aa475b59507ab763d14a5b926..2eeee306925bb4db811a6466b71ea0b07a9f735a 100644 (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 ]