diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index 83d85b68d8..b77fa3ecbd 100755 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -135,7 +135,8 @@ ERROR: bad-superclass class ; dup boa-check-quot "boa-check" set-word-prop ; : tuple-prototype ( class -- prototype ) - [ all-slots [ initial>> ] map ] keep slots>tuple ; + [ all-slots [ initial>> ] map ] keep + over [ ] contains? [ slots>tuple ] [ 2drop f ] if ; : define-tuple-prototype ( class -- ) dup tuple-prototype "prototype" set-word-prop ; @@ -304,7 +305,8 @@ M: tuple hashcode* ] recursive-hashcode ; M: tuple-class new - "prototype" word-prop (clone) ; + dup "prototype" word-prop + [ (clone) ] [ tuple-layout ] ?if ; M: tuple-class boa [ "boa-check" word-prop call ]