   ]
 
   ForBody: [
-    o 'FOR Range',                              -> source: Value.create($2)
+    o 'FOR Range',                              -> source: Value.wrap($2)
     o 'ForStart ForSource',                     -> $2.own = $1.own; $2.name = $1[0]; $2.index = $1[1]; $2
   ]
 


  # A reference to the *this* current object.
  This: [
    o 'THIS',                                   -> Value.create new Literal 'this'
    o '@',                                      -> Value.create new Literal 'this'
  ]

  # A reference to a property on *this*.
  ThisProperty: [
    o '@ Identifier',                           -> Value.create new Literal('this'), [new Access($2)], 'this'
  ]

  # The array literal.

  action = if match = unwrap.exec action then match[1] else "(#{action}())"
  action = action.replace /\bnew /g, '$&yy.'
  action = action.replace /\b(?:Block\.wrap|extend)\b/g, 'yy.$&'
  action = action.replace /\b(Op|Value\.(create|wrap))\b/g, 'yy.$&'
  [patternString, "$$ = #{action};", options]

# Grammatical Rules
