anchor.diff:      Dlr.callStaticT<TC> "ToClrObject" [expr]
   
     (**)
  -  static member ToObject(env:Environment, o:CO) : CO = o
  -  static member ToObject(env:Environment, f:FO) : CO = f :> CO
  -  static member ToObject(env:Environment, u:Undef) : CO = env.RaiseTypeError()
  -  static member ToObject(env:Environment, o:obj) : CO = env.RaiseTypeError()
  -  static member ToObject(env:Environment, s:string) : CO = env.NewString(s)
  -  static member ToObject(env:Environment, n:double) : CO = env.NewNumber(n)
  -  static member ToObject(env:Environment, b:bool) : CO = env.NewBoolean(b)
  -  static member ToObject(env:Environment, v:BV) : CO =
  +  static member ToObject(env:Env, o:CO) : CO = o
  +  static member ToObject(env:Env, f:FO) : CO = f :> CO
  +
  +  ///
  +  static member ToObject(env:Env, u:Undef) : CO = 
  +    env.RaiseTypeError("Can't convert Undefined to Object")
  +
  +  ///
  +  static member ToObject(env:Env, o:obj) : CO = 
  +    env.RaiseTypeError("Can't convert Null or CLR to Object")
  +
  +  static member ToObject(env:Env, s:string) : CO = env.NewString(s)
  +  static member ToObject(env:Env, n:double) : CO = env.NewNumber(n)
  +  static member ToObject(env:Env, b:bool) : CO = env.NewBoolean(b)
  +  static member ToObject(env:Env, v:BV) : CO =
       match v.Tag with
       | TypeTags.Object 
       | TypeTags.Function -> v.Object
  -    | TypeTags.Undefined
  -    | TypeTags.Clr -> env.RaiseTypeError()
  +    
       | TypeTags.String -> env.NewString(v.String)
       | TypeTags.Bool -> env.NewBoolean(v.Bool)
  +
  +    | TypeTags.Undefined
  +    | TypeTags.Clr -> 
  +      env.RaiseTypeError("Can't convert Undefined, Null or CLR to Object")
  +
       | _ -> env.NewNumber(v.Number)
   
     static member ToObject(env:Dlr.Expr, expr:Dlr.Expr) : Dlr.Expr = 
  
positive.code:   member x.NewArray() = x.NewArray(0u)
    member x.NewArray(size) =
      let array = AO(x, size)
      array.Put("length", double size)
      array :> CO
  
    member x.NewString() = x.NewString(String.Empty)
  
negative.code:     x.IndexMap.Add(name, index)
      x :> Schema
  
  /// Exception that represent an exception
  /// thrown by javascript code, or an exception
  /// thrown from within the engine which is supposed
  /// to be catchable by user code.
  and UserError(value:BV, line:int, column:int) =
    inherit IronJS.Error.Error("User Error")
    member x.Value = value
    member x.Line = line
    member x.Column = column
  
  /// Exception used to break out of
  /// a finally block, which the CLR
  /// doesn't allow.
  and FinallyBreakJump(labelId:int) =
    inherit Exception()
    member x.LabelId = labelId
    
  /// Exception used to continue out of
  /// a finally block, which the CLR
  /// doesn't allow.
  and FinallyContinueJump(labelId:int) =
    inherit Exception()
    member x.LabelId = labelId
    
  /// Exception used to return out of
  /// a finally block, which the CLR
  /// doesn't allow.
  and FinallyReturnJump(value:BV) =
    inherit Exception()
    member x.Value = value
  
  ///
  and BoxingUtils() =
  
    static member JsBox (o:obj) =
  