original_string: protected function getMissingBaseProperties(array $properties = null)
      {
          $basePropertyKeys = PropertyIds::getBasePropertyKeys();
  
          if ($properties === null) {
              return $basePropertyKeys;
          }
  
          foreach ($properties as $property) {
              $propertyId = $property->getId();
              $basePropertyKey = array_search($propertyId, $basePropertyKeys);
              if ($basePropertyKey !== false) {
                  unset($basePropertyKeys[$basePropertyKey]);
              }
          }
  
          return $basePropertyKeys;
      }
code: protected function getMissingBaseProperties(array $properties = null)
      {
          $basePropertyKeys = PropertyIds::getBasePropertyKeys();
  
          if ($properties === null) {
              return $basePropertyKeys;
          }
  
          foreach ($properties as $property) {
              $propertyId = $property->getId();
              $basePropertyKey = array_search($propertyId, $basePropertyKeys);
              if ($basePropertyKey !== false) {
                  unset($basePropertyKeys[$basePropertyKey]);
              }
          }
  
          return $basePropertyKeys;
      }
code_tokens: protected function getMissingBaseProperties ( array $ properties = null ) { $ basePropertyKeys = PropertyIds :: getBasePropertyKeys ( ) ; if ( $ properties === null ) { return $ basePropertyKeys ; } foreach ( $ properties as $ property ) { $ propertyId = $ property -> getId ( ) ; $ basePropertyKey = array_search ( $ propertyId , $ basePropertyKeys ) ; if ( $ basePropertyKey !== false ) { unset ( $ basePropertyKeys [ $ basePropertyKey ] ) ; } } return $ basePropertyKeys ; }
docstring: Returns a list of missing property keys
  
  @param PropertyDefinitionInterface[]|null $properties
  @return array
docstring_tokens: Returns a list of missing property keys