parameters: (descriptor, properties)
return_statement: return CGWrapper(unforgeableProperties, pre="\n").define()
docstring: properties is a PropertyArrays instance
docstring_summary: properties is a PropertyArrays instance
docstring_tokens: properties is a PropertyArrays instance
function: def InitUnforgeableProperties(descriptor, properties):
      """
      properties is a PropertyArrays instance
      """
      unforgeableAttrs = properties.unforgeableAttrs
      if not unforgeableAttrs.hasNonChromeOnly() and not unforgeableAttrs.hasChromeOnly():
          return ""
  
      if descriptor.proxy:
          unforgeableProperties = CGGeneric(
              "// Unforgeable properties on proxy-based bindings are stored in an object held\n"
              "// by the interface prototype object.\n")
      else:
          unforgeableProperties = CGWrapper(
              InitUnforgeablePropertiesOnObject(descriptor, "obj", properties, "nullptr"),
              pre=(
                  "// Important: do unforgeable property setup after we have handed\n"
                  "// over ownership of the C++ object to obj as needed, so that if\n"
                  "// we fail and it ends up GCed it won't have problems in the\n"
                  "// finalizer trying to drop its ownership of the C++ object.\n"))
      return CGWrapper(unforgeableProperties, pre="\n").define()
function_tokens: def InitUnforgeableProperties ( descriptor , properties ) : unforgeableAttrs = properties . unforgeableAttrs if not unforgeableAttrs . hasNonChromeOnly ( ) and not unforgeableAttrs . hasChromeOnly ( ) : return "" if descriptor . proxy : unforgeableProperties = CGGeneric ( "// Unforgeable properties on proxy-based bindings are stored in an object held\n" "// by the interface prototype object.\n" ) else : unforgeableProperties = CGWrapper ( InitUnforgeablePropertiesOnObject ( descriptor , "obj" , properties , "nullptr" ) , pre = ( "// Important: do unforgeable property setup after we have handed\n" "// over ownership of the C++ object to obj as needed, so that if\n" "// we fail and it ends up GCed it won't have problems in the\n" "// finalizer trying to drop its ownership of the C++ object.\n" ) ) return CGWrapper ( unforgeableProperties , pre = "\n" ) . define ( )