     propList.push new Assign new Value(new Literal fname), propValue.transform(), 'object'
   obj = new Value new Obj propList
   new Value new Parens new Block [new Assign(new Value(ptr), v), obj]
-
-# Pull out the last non-comment, non-declaration, and non-type assign node of
-# a node list.
-lastNonCommentOrDeclaration = (list) ->
-  i = list.length
-  return i while i-- when list[i] not instanceof Comment and
-                          list[i] not instanceof DeclareType and
-                          list[i] not instanceof TypeAssign
 
 # Transform a function to have the right stack pointer computations upon entry
 # and exit. The safe way is to wrap the entire body of the function in a


# Cache this for typing null values.
anyPtrTy = new PointerType null
byteTy   = new PrimitiveType 1, 'byte',  HEAP, yes
shortTy  = new PrimitiveType 2, 'short', I16, yes
intTy    = new PrimitiveType 4, 'int',   I32, yes
uintTy   = new PrimitiveType 4, 'uint',  U32, no

  else
    for i in [0...ty.size]
      offset = new Value new Literal i
      stmts.push new Assign new Value(U8, [new Index new Op '+', new Value(destPtr), offset]),
                            new Value(U8, [new Index new Op '+', new Value(srcPtr), offset])
  stmts.push new Value destPtr
  new Value new Parens new Block stmts

