bypasssafe.go raw

   1  // Copyright (c) 2015-2016 Dave Collins <dave@davec.name>
   2  //
   3  // Permission to use, copy, modify, and distribute this software for any
   4  // purpose with or without fee is hereby granted, provided that the above
   5  // copyright notice and this permission notice appear in all copies.
   6  //
   7  // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   8  // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   9  // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10  // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12  // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13  // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14  
  15  // NOTE: Due to the following build constraints, this file will only be compiled
  16  // when the code is running on Google App Engine, compiled by GopherJS, or
  17  // "-tags safe" is added to the go build command line.  The "disableunsafe"
  18  // tag is deprecated and thus should not be used.
  19  // +build js appengine safe disableunsafe !go1.4
  20  
  21  package spew
  22  
  23  import "reflect"
  24  
  25  const (
  26  	// UnsafeDisabled is a build-time constant which specifies whether or
  27  	// not access to the unsafe package is available.
  28  	UnsafeDisabled = true
  29  )
  30  
  31  // unsafeReflectValue typically converts the passed reflect.Value into a one
  32  // that bypasses the typical safety restrictions preventing access to
  33  // unaddressable and unexported data.  However, doing this relies on access to
  34  // the unsafe package.  This is a stub version which simply returns the passed
  35  // reflect.Value when the unsafe package is not available.
  36  func unsafeReflectValue(v reflect.Value) reflect.Value {
  37  	return v
  38  }
  39