bypasssafe.go (1741B)
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 }