diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php
index d489c8e..2d60a1e 100644
--- a/core/lib/Drupal/Core/Field/FieldItemBase.php
+++ b/core/lib/Drupal/Core/Field/FieldItemBase.php
@@ -134,14 +134,21 @@ protected function writePropertyValue($property_name, $value) {
    * {@inheritdoc}
    */
   public function __get($name) {
-    // There is either a property object or a plain value - possibly for a
-    // not-defined property. If we have a plain value, directly return it.
+    // If the property has been instantiated already, return its value.
     if (isset($this->properties[$name])) {
       return $this->properties[$name]->getValue();
     }
+    // If the property has not been instantiated, return its plain value if we
+    // have one.
     elseif (isset($this->values[$name])) {
       return $this->values[$name];
     }
+    // Instantiate the property if it exists, and return its value. We do this
+    // last, because property instantiation is often slower than the previous
+    // retrieval methods.
+    elseif ($this->definition->getPropertyDefinition($name)) {
+      return $this->get($name)->getValue();
+    }
   }
 
   /**
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
index c7e7828..98e557a 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
@@ -13,7 +13,7 @@
  */
 class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase {
 
-  public static $modules = array('taxonomy', 'text');
+  public static $modules = ['taxonomy', 'text', 'filter'];
 
   /**
    * The cached taxonomy tree items, keyed by vid and tid.
diff --git a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
index d72f13d..da58957 100644
--- a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
+++ b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerNodeTest.php
@@ -19,6 +19,7 @@ class MigrateTrackerNodeTest extends MigrateDrupal7TestBase {
     'node',
     'text',
     'tracker',
+    'filter',
   ];
 
   /**
diff --git a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
index e3ed88e..5545958 100644
--- a/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
+++ b/core/modules/tracker/tests/src/Kernel/Migrate/d7/MigrateTrackerUserTest.php
@@ -19,6 +19,7 @@ class MigrateTrackerUserTest extends MigrateDrupal7TestBase {
     'node',
     'text',
     'tracker',
+    'filter',
   ];
 
   /**
