diff --git a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php
index 14d02e8..dce2667 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php
@@ -95,7 +95,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var array
    */
-  public $settings;
+  public $settings = array();
 
   /**
    * The field cardinality.
@@ -105,7 +105,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var integer
    */
-  public $cardinality;
+  public $cardinality = 1;
 
   /**
    * Flag indicating whether the field is translatable.
@@ -114,7 +114,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var bool
    */
-  public $translatable;
+  public $translatable = FALSE;
 
   /**
    * The entity types on which the field is allowed to have instances.
@@ -124,7 +124,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var array
    */
-  public $entity_types;
+  public $entity_types = array();
 
   /**
    * Flag indicating whether the field is available for editing.
@@ -138,7 +138,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var bool
    */
-  public $locked;
+  public $locked = FALSE;
 
   /**
    * The field storage definition.
@@ -157,7 +157,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var array
    */
-  public $storage;
+  public $storage = array();
 
   /**
    * The custom storage indexes for the field data storage.
@@ -175,7 +175,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var array
    */
-  public $indexes;
+  public $indexes = array();
 
   /**
    * Flag indicating whether the field is deleted.
@@ -190,7 +190,7 @@ class Field extends ConfigEntityBase implements \ArrayAccess, \Serializable {
    *
    * @var bool
    */
-  public $deleted;
+  public $deleted = FALSE;
 
   /**
    * The field schema.
@@ -228,17 +228,6 @@ public function __construct(array $values, $entity_type = 'field_entity') {
       throw new FieldException('Attempt to create a field with invalid characters. Only lowercase alphanumeric characters and underscores are allowed, and only lowercase letters and underscore are allowed as the first character');
     }
 
-    // Provide defaults.
-    $values += array(
-      'settings' => array(),
-      'cardinality' => 1,
-      'translatable' => FALSE,
-      'entity_types' => array(),
-      'locked' => FALSE,
-      'deleted' => FALSE,
-      'storage' => array(),
-      'indexes' => array(),
-    );
     parent::__construct($values, $entity_type);
   }
 
diff --git a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
index 363d54f..d81167f 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
@@ -77,6 +77,9 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    * This will be used as the title of Form API elements for the field in entity
    * edit forms, or as the label for the field values in displayed entities.
    *
+   * If not specified, this defaults to the field_name (mostly useful for field
+   * instances created in tests).
+   *
    * @var string
    */
   public $label;
@@ -90,7 +93,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var string
    */
-  public $description;
+  public $description = '';
 
   /**
    * Field-type specific settings.
@@ -100,7 +103,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var array
    */
-  public $settings;
+  public $settings = array();
 
   /**
    * Flag indicating whether the field is required.
@@ -111,7 +114,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var bool
    */
-  public $required;
+  public $required = FALSE;
 
   /**
    * Default field value.
@@ -141,7 +144,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var array
    */
-  public $default_value;
+  public $default_value = array();
 
   /**
    * The name of a callback function that returns default values.
@@ -163,7 +166,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var string
    */
-  public $default_value_function;
+  public $default_value_function = '';
 
   /**
    * The widget definition.
@@ -181,7 +184,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var array
    */
-  public $widget;
+  public $widget = array();
 
   /**
    * Flag indicating whether the instance is deleted.
@@ -196,7 +199,7 @@ class FieldInstance extends ConfigEntityBase implements \ArrayAccess, \Serializa
    *
    * @var bool
    */
-  public $deleted;
+  public $deleted = FALSE;
 
   /**
    * The field ConfigEntity object corresponding to $field_uuid.
@@ -259,18 +262,10 @@ public function __construct(array $values, $entity_type = 'field_instance') {
       throw new FieldException(format_string('Attempt to create an instance of field @field_id without a bundle.', array('@field_id' => $this->field->id)));
     }
 
-    // Provide defaults.
+    // 'Label' defaults to the field ID (mostly useful for field instances
+    // created in tests).
     $values += array(
-      // 'Label' defaults to the field ID (mostly useful for field instances
-      // created in tests).
       'label' => $this->field->id,
-      'description' => '',
-      'required' => FALSE,
-      'default_value' => array(),
-      'default_value_function' => '',
-      'settings' => array(),
-      'widget' => array(),
-      'deleted' => FALSE,
     );
     parent::__construct($values, $entity_type);
   }
