Mark a few more simple expressions as pure in the expander.

Related to #3204.
This commit is contained in:
Sam Tobin-Hochstadt 2020-05-21 22:53:11 -04:00 committed by Sam Tobin-Hochstadt
parent 617f9e9bd6
commit 8b629a329b
3 changed files with 440 additions and 142 deletions

View File

@ -58,6 +58,14 @@
(and (for/and ([e (in-list (m 'e))])
(not (effects? e #f locals)))
(loop (m 'e0) locals))]
[(make-parameter)
(define-correlated-match m e #:try '(mp v g (quot nm)))
(and (m)
(not (any-side-effects? (m 'v) 1))
(eq? 'quote (m 'quot))
(symbol? (m 'nm))
(equal? #f (m 'g))
1)]
[(make-struct-type)
(and (ok-make-struct-type? e ready-variable? defns)
5)]

View File

@ -9,6 +9,7 @@
(hash-set! seen-defns 'make-thread-cell (known-struct-op 'constructor 1))
(hash-set! seen-defns 'make-continuation-prompt-tag (known-struct-op 'constructor 1))
(hash-set! seen-defns 'make-weak-hash (known-struct-op 'constructor 0))
(hash-set! seen-defns 'make-hash (known-struct-op 'constructor 0))
(hash-set! seen-defns 'gensym (known-struct-op 'constructor 0))
(hash-set! seen-defns 'string (known-struct-op 'constructor 2))
(hash-set! seen-defns 'cons (known-struct-op 'constructor 2))
@ -27,6 +28,7 @@
(hash-set! seen-defns 'object-name (known-function 1 #t)) ; assuming no `prop:object-name`
(hash-set! seen-defns 'procedure-rename (known-function-of-satisfying '(procedure symbol)))
(hash-set! seen-defns 'prop:custom-write (known-property-of-function 3))
(hash-set! seen-defns 'prop:exn:srclocs (known-property-of-function 1))
(hash-set! seen-defns 'prop:method-arity-error (known-property))
(hash-set! seen-defns 'prop:incomplete-arity (known-property))
(hash-set! seen-defns 'prop:impersonator-of (known-property-of-function 1))

View File

@ -2425,7 +2425,6 @@ static const char *startup_source =
" loop_0)"
" list_0"
" null)))))"
"(define-values(no-empty-edge-table)(make-hash))"
" (define-values (binary-or-text-desc) \"(or/c 'binary 'text)\")"
"(define-values"
"(open-input-file.1)"
@ -34709,15 +34708,16 @@ static const char *startup_source =
"(begin . 5)"
"(begin0 . 6)"
"(case-lambda . 1)"
"(gensym . 11)"
"(if . 12)"
"(gensym . 12)"
"(if . 13)"
"(lambda . 1)"
"(let-values . 2)"
"(letrec-values . 2)"
"(make-struct-field-accessor . 8)"
"(make-struct-field-mutator . 9)"
"(make-struct-type . 7)"
"(make-struct-type-property . 10)"
"(make-parameter . 7)"
"(make-struct-field-accessor . 9)"
"(make-struct-field-mutator . 10)"
"(make-struct-type . 8)"
"(make-struct-type-property . 11)"
"(quote . 1)"
"(values . 3)"
"(void . 4))"
@ -35805,12 +35805,301 @@ static const char *startup_source =
" #f)))"
"(if(unsafe-fx< index_0 8)"
"(let-values()"
"(let-values(((ok?_0"
" mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)"
"(let-values(((s_0) e_1))"
"(if(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(if(pair? s_1)"
"(if(let-values(((s_2)"
"(car"
" s_1)))"
" #t)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
"(let-values(((s_3)"
"(if(1/syntax?"
" s_2)"
"(syntax-e$2"
" s_2)"
" s_2)))"
"(if(pair? s_3)"
"(if(let-values(((s_4)"
"(car"
" s_3)))"
" #t)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
"(let-values(((s_5)"
"(if(1/syntax?"
" s_4)"
"(syntax-e$2"
" s_4)"
" s_4)))"
"(if(pair?"
" s_5)"
"(if(let-values(((s_6)"
"(car"
" s_5)))"
" #t)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
"(let-values(((s_7)"
"(if(1/syntax?"
" s_6)"
"(syntax-e$2"
" s_6)"
" s_6)))"
"(if(pair?"
" s_7)"
"(if(let-values(((s_8)"
"(car"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(if(pair?"
" s_9)"
"(if(let-values(((s_10)"
"(car"
" s_9)))"
" #t)"
"(let-values(((s_10)"
"(cdr"
" s_9)))"
"(let-values(((s_11)"
"(if(1/syntax?"
" s_10)"
"(syntax-e$2"
" s_10)"
" s_10)))"
"(if(pair?"
" s_11)"
"(if(let-values(((s_12)"
"(car"
" s_11)))"
" #t)"
"(let-values(((s_12)"
"(cdr"
" s_11)))"
"(let-values(((s_13)"
"(if(1/syntax?"
" s_12)"
"(syntax-e$2"
" s_12)"
" s_12)))"
"(null?"
" s_13)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
"(let-values(((s_8)"
"(cdr"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(null?"
" s_9)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
" #f)"
" #f)))"
" #f)"
" #f))"
"(let-values()"
"(let-values(((mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)"
"(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(let-values(((mp61_0)"
"(let-values(((s_2)"
"(car"
" s_1)))"
" s_2))"
"((v62_0"
" g63_0"
" quot64_0"
" nm65_0)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
"(let-values(((s_3)"
"(if(1/syntax?"
" s_2)"
"(syntax-e$2"
" s_2)"
" s_2)))"
"(let-values(((v66_0)"
"(let-values(((s_4)"
"(car"
" s_3)))"
" s_4))"
"((g67_0"
" quot68_0"
" nm69_0)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
"(let-values(((s_5)"
"(if(1/syntax?"
" s_4)"
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((g70_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((quot71_0"
" nm72_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
"(let-values(((s_7)"
"(if(1/syntax?"
" s_6)"
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((quot73_0"
" nm74_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(let-values(((quot75_0)"
"(let-values(((s_10)"
"(car"
" s_9)))"
" s_10))"
"((nm76_0)"
"(let-values(((s_10)"
"(cdr"
" s_9)))"
"(let-values(((s_11)"
"(if(1/syntax?"
" s_10)"
"(syntax-e$2"
" s_10)"
" s_10)))"
"(let-values(((nm77_0)"
"(let-values(((s_12)"
"(car"
" s_11)))"
" s_12))"
"(()"
"(let-values(((s_12)"
"(cdr"
" s_11)))"
"(let-values(((s_13)"
"(if(1/syntax?"
" s_12)"
"(syntax-e$2"
" s_12)"
" s_12)))"
"(values)))))"
"(values"
" nm77_0))))))"
"(values"
" quot75_0"
" nm76_0)))))"
"(()"
"(let-values(((s_8)"
"(cdr"
" s_7)))"
"(let-values(((s_9)"
"(if(1/syntax?"
" s_8)"
"(syntax-e$2"
" s_8)"
" s_8)))"
"(values)))))"
"(values"
" quot73_0"
" nm74_0))))))"
"(values"
" g70_0"
" quot71_0"
" nm72_0))))))"
"(values"
" v66_0"
" g67_0"
" quot68_0"
" nm69_0))))))"
"(values"
" mp61_0"
" v62_0"
" g63_0"
" quot64_0"
" nm65_0)))))"
"(values"
" #t"
" mp56_0"
" v57_0"
" g58_0"
" quot59_0"
" nm60_0)))"
"(values #f #f #f #f #f #f)))))"
"(if ok?_0"
"(if(not"
"(let-values(((temp78_0) v57_0)"
"((temp79_0) 1))"
"(any-side-effects?.1"
" '#hasheq()"
" '#hasheq()"
" unsafe-undefined"
" temp78_0"
" temp79_0)))"
"(if(eq? 'quote quot59_0)"
"(if(symbol? nm60_0)"
"(if(equal? #f g58_0) 1 #f)"
" #f)"
" #f)"
" #f)"
" #f)))"
"(let-values()"
"(if(ok-make-struct-type?"
" e_1"
" ready-variable?_0"
" defns_0)"
" 5"
" #f))"
" #f))))"
"(if(unsafe-fx< index_0 11)"
"(if(unsafe-fx< index_0 10)"
"(let-values()"
"(if(ok-make-struct-field-accessor/mutator?"
" e_1"
@ -35818,8 +36107,7 @@ static const char *startup_source =
" 'general-accessor"
" defns_0)"
" 1"
" #f))))"
"(if(unsafe-fx< index_0 10)"
" #f))"
"(let-values()"
"(if(ok-make-struct-field-accessor/mutator?"
" e_1"
@ -35827,15 +36115,15 @@ static const char *startup_source =
" 'general-mutator"
" defns_0)"
" 1"
" #f))"
"(if(unsafe-fx< index_0 11)"
" #f)))"
"(if(unsafe-fx< index_0 12)"
"(let-values()"
"(if(ok-make-struct-type-property? e_1 defns_0)"
" 3"
" #f))"
"(if(unsafe-fx< index_0 12)"
"(if(unsafe-fx< index_0 13)"
"(let-values()"
"(let-values(((ok?_0 gs56_0 quot57_0 datum58_0)"
"(let-values(((ok?_0 gs80_0 quot81_0 datum82_0)"
"(let-values(((s_0) e_1))"
"(if(let-values(((s_1)"
"(if(1/syntax?"
@ -35919,22 +36207,22 @@ static const char *startup_source =
" #f)"
" #f))"
"(let-values()"
"(let-values(((gs56_0"
" quot57_0"
" datum58_0)"
"(let-values(((gs80_0"
" quot81_0"
" datum82_0)"
"(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(let-values(((gs59_0)"
"(let-values(((gs83_0)"
"(let-values(((s_2)"
"(car"
" s_1)))"
" s_2))"
"((quot60_0"
" datum61_0)"
"((quot84_0"
" datum85_0)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
@ -35944,8 +36232,8 @@ static const char *startup_source =
"(syntax-e$2"
" s_2)"
" s_2)))"
"(let-values(((quot62_0"
" datum63_0)"
"(let-values(((quot86_0"
" datum87_0)"
"(let-values(((s_4)"
"(car"
" s_3)))"
@ -35955,12 +36243,12 @@ static const char *startup_source =
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((quot64_0)"
"(let-values(((quot88_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((datum65_0)"
"((datum89_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
@ -35970,7 +36258,7 @@ static const char *startup_source =
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((datum66_0)"
"(let-values(((datum90_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
@ -35987,10 +36275,10 @@ static const char *startup_source =
" s_8)))"
"(values)))))"
"(values"
" datum66_0))))))"
" datum90_0))))))"
"(values"
" quot64_0"
" datum65_0)))))"
" quot88_0"
" datum89_0)))))"
"(()"
"(let-values(((s_4)"
"(cdr"
@ -36003,28 +36291,28 @@ static const char *startup_source =
" s_4)))"
"(values)))))"
"(values"
" quot62_0"
" datum63_0))))))"
" quot86_0"
" datum87_0))))))"
"(values"
" gs59_0"
" quot60_0"
" datum61_0)))))"
" gs83_0"
" quot84_0"
" datum85_0)))))"
"(values"
" #t"
" gs56_0"
" quot57_0"
" datum58_0)))"
" gs80_0"
" quot81_0"
" datum82_0)))"
"(values #f #f #f #f)))))"
"(if(let-values(((or-part_0)"
"(if ok?_0"
"(if(eq? 'quote quot57_0)"
"(if(eq? 'quote quot81_0)"
"(let-values(((or-part_0)"
"(symbol?"
" datum58_0)))"
" datum82_0)))"
"(if or-part_0"
" or-part_0"
"(string?"
" datum58_0)))"
" datum82_0)))"
" #f)"
" #f)))"
"(if or-part_0"
@ -36034,11 +36322,11 @@ static const char *startup_source =
" #f)))"
"(let-values()"
"(let-values(((ok?_0"
" _67_0"
" id:rator68_0"
" id:arg69_0"
" thn70_0"
" els71_0)"
" _91_0"
" id:rator92_0"
" id:arg93_0"
" thn94_0"
" els95_0)"
"(let-values(((s_0) e_1))"
"(if(let-values(((s_1)"
"(if(1/syntax?"
@ -36176,26 +36464,26 @@ static const char *startup_source =
" #f)"
" #f))"
"(let-values()"
"(let-values(((_67_0"
" id:rator68_0"
" id:arg69_0"
" thn70_0"
" els71_0)"
"(let-values(((_91_0"
" id:rator92_0"
" id:arg93_0"
" thn94_0"
" els95_0)"
"(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(let-values(((_72_0)"
"(let-values(((_96_0)"
"(let-values(((s_2)"
"(car"
" s_1)))"
" s_2))"
"((id:rator73_0"
" id:arg74_0"
" thn75_0"
" els76_0)"
"((id:rator97_0"
" id:arg98_0"
" thn99_0"
" els100_0)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
@ -36205,8 +36493,8 @@ static const char *startup_source =
"(syntax-e$2"
" s_2)"
" s_2)))"
"(let-values(((id:rator77_0"
" id:arg78_0)"
"(let-values(((id:rator101_0"
" id:arg102_0)"
"(let-values(((s_4)"
"(car"
" s_3)))"
@ -36216,12 +36504,12 @@ static const char *startup_source =
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((id:rator81_0)"
"(let-values(((id:rator105_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((id:arg82_0)"
"((id:arg106_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
@ -36231,7 +36519,7 @@ static const char *startup_source =
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((id:arg83_0)"
"(let-values(((id:arg107_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
@ -36248,12 +36536,12 @@ static const char *startup_source =
" s_8)))"
"(values)))))"
"(values"
" id:arg83_0))))))"
" id:arg107_0))))))"
"(values"
" id:rator81_0"
" id:arg82_0)))))"
"((thn79_0"
" els80_0)"
" id:rator105_0"
" id:arg106_0)))))"
"((thn103_0"
" els104_0)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
@ -36263,12 +36551,12 @@ static const char *startup_source =
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((thn84_0)"
"(let-values(((thn108_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((els85_0)"
"((els109_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
@ -36278,7 +36566,7 @@ static const char *startup_source =
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((els86_0)"
"(let-values(((els110_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
@ -36295,28 +36583,28 @@ static const char *startup_source =
" s_8)))"
"(values)))))"
"(values"
" els86_0))))))"
" els110_0))))))"
"(values"
" thn84_0"
" els85_0))))))"
" thn108_0"
" els109_0))))))"
"(values"
" id:rator77_0"
" id:arg78_0"
" thn79_0"
" els80_0))))))"
" id:rator101_0"
" id:arg102_0"
" thn103_0"
" els104_0))))))"
"(values"
" _72_0"
" id:rator73_0"
" id:arg74_0"
" thn75_0"
" els76_0)))))"
" _96_0"
" id:rator97_0"
" id:arg98_0"
" thn99_0"
" els100_0)))))"
"(values"
" #t"
" _67_0"
" id:rator68_0"
" id:arg69_0"
" thn70_0"
" els71_0)))"
" _91_0"
" id:rator92_0"
" id:arg93_0"
" thn94_0"
" els95_0)))"
"(values #f #f #f #f #f #f)))))"
"(if ok?_0"
"(let-values()"
@ -36324,37 +36612,37 @@ static const char *startup_source =
"(let-values(((or-part_0)"
"(hash-ref"
" locals_1"
" id:rator68_0"
" id:rator92_0"
" #f)))"
"(if or-part_0"
" or-part_0"
"(lookup-defn"
" defns_0"
" id:rator68_0)))))"
" id:rator92_0)))))"
"(if c2_0"
"((lambda(d_0)"
"(if(known-predicate? d_0)"
"(if(not"
"(effects?_0"
" thn70_0"
" thn94_0"
" expected-results_0"
"(hash-set"
" locals_1"
" id:arg69_0"
" id:arg93_0"
"(known-satisfies8.1"
"(known-predicate-key"
" d_0)))))"
"(loop_0 els71_0 locals_1)"
"(loop_0 els95_0 locals_1)"
" #f)"
" #f))"
" c2_0)"
"(let-values() #f))))"
"(let-values()"
"(let-values(((ok?_1"
" _87_0"
" tst88_0"
" thn89_0"
" els90_0)"
" _111_0"
" tst112_0"
" thn113_0"
" els114_0)"
"(let-values(((s_0) e_1))"
"(if(let-values(((s_1)"
"(if(1/syntax?"
@ -36432,24 +36720,24 @@ static const char *startup_source =
" #f)"
" #f))"
"(let-values()"
"(let-values(((_87_0"
" tst88_0"
" thn89_0"
" els90_0)"
"(let-values(((_111_0"
" tst112_0"
" thn113_0"
" els114_0)"
"(let-values(((s_1)"
"(if(1/syntax?"
" s_0)"
"(syntax-e$2"
" s_0)"
" s_0)))"
"(let-values(((_91_0)"
"(let-values(((_115_0)"
"(let-values(((s_2)"
"(car"
" s_1)))"
" s_2))"
"((tst92_0"
" thn93_0"
" els94_0)"
"((tst116_0"
" thn117_0"
" els118_0)"
"(let-values(((s_2)"
"(cdr"
" s_1)))"
@ -36459,13 +36747,13 @@ static const char *startup_source =
"(syntax-e$2"
" s_2)"
" s_2)))"
"(let-values(((tst95_0)"
"(let-values(((tst119_0)"
"(let-values(((s_4)"
"(car"
" s_3)))"
" s_4))"
"((thn96_0"
" els97_0)"
"((thn120_0"
" els121_0)"
"(let-values(((s_4)"
"(cdr"
" s_3)))"
@ -36475,12 +36763,12 @@ static const char *startup_source =
"(syntax-e$2"
" s_4)"
" s_4)))"
"(let-values(((thn98_0)"
"(let-values(((thn122_0)"
"(let-values(((s_6)"
"(car"
" s_5)))"
" s_6))"
"((els99_0)"
"((els123_0)"
"(let-values(((s_6)"
"(cdr"
" s_5)))"
@ -36490,7 +36778,7 @@ static const char *startup_source =
"(syntax-e$2"
" s_6)"
" s_6)))"
"(let-values(((els100_0)"
"(let-values(((els124_0)"
"(let-values(((s_8)"
"(car"
" s_7)))"
@ -36507,25 +36795,25 @@ static const char *startup_source =
" s_8)))"
"(values)))))"
"(values"
" els100_0))))))"
" els124_0))))))"
"(values"
" thn98_0"
" els99_0))))))"
" thn122_0"
" els123_0))))))"
"(values"
" tst95_0"
" thn96_0"
" els97_0))))))"
" tst119_0"
" thn120_0"
" els121_0))))))"
"(values"
" _91_0"
" tst92_0"
" thn93_0"
" els94_0)))))"
" _115_0"
" tst116_0"
" thn117_0"
" els118_0)))))"
"(values"
" #t"
" _87_0"
" tst88_0"
" thn89_0"
" els90_0)))"
" _111_0"
" tst112_0"
" thn113_0"
" els114_0)))"
"(values"
" #f"
" #f"
@ -36534,13 +36822,13 @@ static const char *startup_source =
" #f)))))"
"(if ok?_1"
"(if(not"
"(effects?_0 tst88_0 1 locals_1))"
"(effects?_0 tst112_0 1 locals_1))"
"(if(not"
"(effects?_0"
" thn89_0"
" thn113_0"
" expected-results_0"
" locals_1))"
"(loop_0 els90_0 locals_1)"
"(loop_0 els114_0 locals_1)"
" #f)"
" #f)"
" #f)))))))))))))))))"
@ -36777,8 +37065,8 @@ static const char *startup_source =
"(lambda(v_0)(ok-make-struct-type-property-super? v_0 defns_0))"
"(lambda(v_0)"
"(not"
"(let-values(((v101_0) v_0)((temp102_0) 1)((defns103_0) defns_0))"
"(any-side-effects?.1 defns103_0 '#hasheq() unsafe-undefined v101_0 temp102_0)))))))"
"(let-values(((v125_0) v_0)((temp126_0) 1)((defns127_0) defns_0))"
"(any-side-effects?.1 defns127_0 '#hasheq() unsafe-undefined v125_0 temp126_0)))))))"
"(begin"
"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_0)))"
"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-list lst_1)))"
@ -36872,20 +37160,20 @@ static const char *startup_source =
"(known-property-of-function?"
" o_0))))))"
"(not"
"(let-values(((temp104_0)"
"(let-values(((temp128_0)"
"(list-ref"
" prop+val_1"
" 2))"
"((temp105_0)"
"((temp129_0)"
" 1)"
"((defns106_0)"
"((defns130_0)"
" defns_0))"
"(any-side-effects?.1"
" defns106_0"
" defns130_0"
" '#hasheq()"
" unsafe-undefined"
" temp104_0"
" temp105_0)))"
" temp128_0"
" temp129_0)))"
" #f)"
" #f))"
" #f)))))"
@ -36964,16 +37252,16 @@ static const char *startup_source =
"(lambda(v_0)(field-count-expr-to-field-count v_0))"
"(lambda(v_0)"
"(not"
"(let-values(((v107_0) v_0)"
"((temp108_0) 1)"
"((ready-variable?109_0) ready-variable?_0)"
"((defns110_0) defns_0))"
"(let-values(((v131_0) v_0)"
"((temp132_0) 1)"
"((ready-variable?133_0) ready-variable?_0)"
"((defns134_0) defns_0))"
"(any-side-effects?.1"
" defns110_0"
" defns134_0"
" '#hasheq()"
" ready-variable?109_0"
" v107_0"
" temp108_0))))"
" ready-variable?133_0"
" v131_0"
" temp132_0))))"
"(lambda(v_0)"
"(known-good-struct-properties? v_0 immutables-expr_0 super-expr_0 defns_0))"
"(lambda(v_0)(inspector-or-false? v_0))"
@ -37185,8 +37473,8 @@ static const char *startup_source =
"(if(known-property? o_0)"
"(let-values()"
"(not"
"(let-values(((val-expr111_0) val-expr_0)((temp112_0) 1)((defns113_0) defns_0))"
"(any-side-effects?.1 defns113_0 '#hasheq() unsafe-undefined val-expr111_0 temp112_0))))"
"(let-values(((val-expr135_0) val-expr_0)((temp136_0) 1)((defns137_0) defns_0))"
"(any-side-effects?.1 defns137_0 '#hasheq() unsafe-undefined val-expr135_0 temp136_0))))"
"(if(known-property-of-function? o_0)"
"(let-values()(is-lambda? val-expr_0(known-property-of-function-arity o_0) defns_0))"
"(let-values() #f))))))))))))))"