MCPcopy Create free account
hub / github.com/dop251/goja / __isCompatibleDescriptor

Method __isCompatibleDescriptor

proxy.go:912–959  ·  view source on GitHub ↗
(extensible bool, desc *PropertyDescriptor, current *valueProperty)

Source from the content-addressed store, hash-verified

910}
911
912func (p *proxyObject) __isCompatibleDescriptor(extensible bool, desc *PropertyDescriptor, current *valueProperty) bool {
913 if current == nil {
914 return extensible
915 }
916
917 if !current.configurable {
918 if desc.Configurable == FLAG_TRUE {
919 return false
920 }
921
922 if desc.Enumerable != FLAG_NOT_SET && desc.Enumerable.Bool() != current.enumerable {
923 return false
924 }
925
926 if desc.IsGeneric() {
927 return true
928 }
929
930 if desc.IsData() != !current.accessor {
931 return desc.Configurable != FLAG_FALSE
932 }
933
934 if desc.IsData() && !current.accessor {
935 if !current.configurable {
936 if desc.Writable == FLAG_TRUE && !current.writable {
937 return false
938 }
939 if !current.writable {
940 if desc.Value != nil && !desc.Value.SameAs(current.value) {
941 return false
942 }
943 }
944 }
945 return true
946 }
947 if desc.IsAccessor() && current.accessor {
948 if !current.configurable {
949 if desc.Setter != nil && desc.Setter.SameAs(current.setterFunc) {
950 return false
951 }
952 if desc.Getter != nil && desc.Getter.SameAs(current.getterFunc) {
953 return false
954 }
955 }
956 }
957 }
958 return true
959}
960
961func (p *proxyObject) __sameValue(val1, val2 Value) bool {
962 if val1 == nil && val2 == nil {

Calls 5

BoolMethod · 0.80
IsGenericMethod · 0.80
IsDataMethod · 0.80
IsAccessorMethod · 0.80
SameAsMethod · 0.65

Tested by

no test coverage detected