Added constant-folder for STRING->SYMBOL.
authorStephen Adams <edu/mit/csail/zurich/adams>
Tue, 5 Sep 1995 19:14:35 +0000 (19:14 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Tue, 5 Sep 1995 19:14:35 +0000 (19:14 +0000)
v8/src/compiler/midend/cleanup.scm

index 6221200d0d22aa9f6330767036926f7b1356ee4a..8fcb382b1707908f53866aa8da15cda720b7ec89 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: cleanup.scm,v 1.24 1995/08/10 19:21:58 adams Exp $
+$Id: cleanup.scm,v 1.25 1995/09/05 19:14:35 adams Exp $
 
 Copyright (c) 1994-1995 Massachusetts Institute of Technology
 
@@ -404,6 +404,13 @@ MIT in each case. |#
   (define-commutative-cleanup-rewrite fix:xor)
   (define-commutative-cleanup-rewrite fix:+ +)
   (define-commutative-cleanup-rewrite fix:* *))
+
+(define-cleanup-rewrite 'STRING->SYMBOL 1
+  (lambda (expr)
+    (let  ((value (form/number? expr)))
+      (and (QUOTE/? expr)
+          (string? (quote/test expr))
+          `(QUOTE ,(string->symbol (quote/text expr)))))))
 \f
 ;;
 (let ((NOT-primitive  (make-primitive-procedure 'NOT)))