88
expandable = false
key = apply
valueAsObject = function Function() { [native code] }
valueAsString = function Function() { [native code] }
expandable = true
key = foo
valueAsObject = [object Object]
valueAsString = {foo: 343}
expandable = false
key = setIndexedPropertiesToExternalArrayData
valueAsObject = function setIndexedPropertiesToExternalArrayData() { [native code] }
valueAsString = function setIndexedPropertiesToExternalArrayData() { [native code] }
expandable = false
key = getPrototypeOf
valueAsObject = function getPrototypeOf() { [native code] }
valueAsString = function getPrototypeOf() { [native code] }
expandable = false
key = setPrototypeOf
valueAsObject = function setPrototypeOf() { [native code] }
valueAsString = function setPrototypeOf() { [native code] }
expandable = false
key = getOwnPropertyDescriptor
valueAsObject = function getOwnPropertyDescriptor() { [native code] }
valueAsString = function getOwnPropertyDescriptor() { [native code] }
expandable = false
key = getOwnPropertyNames
valueAsObject = function getOwnPropertyNames() { [native code] }
valueAsString = function getOwnPropertyNames() { [native code] }
expandable = false
key = create
valueAsObject = function create() { [native code] }
valueAsString = function create() { [native code] }
expandable = false
key = defineProperty
valueAsObject = function defineProperty() { [native code] }
valueAsString = function defineProperty() { [native code] }
expandable = false
key = defineProperties
valueAsObject = function defineProperties() { [native code] }
valueAsString = function defineProperties() { [native code] }
expandable = false
key = seal
valueAsObject = function seal() { [native code] }
valueAsString = function seal() { [native code] }
expandable = false
key = freeze
valueAsObject = function freeze() { [native code] }
valueAsString = function freeze() { [native code] }
expandable = false
key = preventExtensions
valueAsObject = function preventExtensions() { [native code] }
valueAsString = function preventExtensions() { [native code] }
expandable = false
key = isSealed
valueAsObject = function isSealed() { [native code] }
valueAsString = function isSealed() { [native code] }
expandable = false
key = isFrozen
valueAsObject = function isFrozen() { [native code] }
valueAsString = function isFrozen() { [native code] }
expandable = false
key = isExtensible
valueAsObject = function isExtensible() { [native code] }
valueAsString = function isExtensible() { [native code] }
expandable = false
key = keys
valueAsObject = function keys() { [native code] }
valueAsString = function keys() { [native code] }
expandable = false
key = bindProperties
valueAsObject = function bindProperties() { [native code] }
valueAsString = function bindProperties() { [native code] }
expandable = false
key = prototype
valueAsObject = [object Object]
valueAsString = {toString: function toString() { [native code] }, toLocaleString: function toLocaleString() { [native code] }, valueOf: function valueOf() { [native code] }, hasOwnProperty: function hasOwnProperty() { [native code] }, isPrototypeOf: function isPrototypeOf() { [native code] }, propertyIsEnumerable: function propertyIsEnumerable() { [native code] }, constructor: function Object() { [native code] }, __proto__: null}
expandable = false
key = length
valueAsObject = 1
valueAsString = 1
expandable = false
key = name
valueAsObject = Object
valueAsString = "Object"
expandable = false
key = foo
valueAsObject = 34
valueAsString = 34
expandable = false
key = bar
valueAsObject = hello
valueAsString = "hello"
undefined
null
"hello"
3.141592653589793
[object global]
script class name pattern satisfied? true
Source info
content = print('hello')
hash = 1655359881
name = test
url = null
