diff --git a/core/composer.json b/core/composer.json
index 26938e3..4eff78f 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -34,7 +34,8 @@
     "fabpot/goutte": "~3.1",
     "masterminds/html5": "~2.1",
     "symfony/psr-http-message-bridge": "v0.2",
-    "zendframework/zend-diactoros": "1.1.0"
+    "zendframework/zend-diactoros": "1.1.0",
+    "aki-tendo/php7exception": "1.0.2"
   },
   "replace": {
     "drupal/action": "self.version",
diff --git a/core/composer.lock b/core/composer.lock
index 676d0bf..5d7f7db 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -4,9 +4,48 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "3708d8fdb54957e5ce661cda1df88353",
+    "hash": "dabd4a9b1eb95581453874af5d1ba4c6",
     "packages": [
         {
+            "name": "aki-tendo/php7exception",
+            "version": "1.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/TendoAki/php-7-exceptions-in-php-5.git",
+                "reference": "96927887c38850d44ce418c3a24e5a7c0acf1dd1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/TendoAki/php-7-exceptions-in-php-5/zipball/96927887c38850d44ce418c3a24e5a7c0acf1dd1",
+                "reference": "96927887c38850d44ce418c3a24e5a7c0acf1dd1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "php7exceptions.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Michael Lloyd Morris",
+                    "email": "tendoAki@gmail.com",
+                    "homepage": "https://github.com/TendoAki/",
+                    "role": "developer"
+                }
+            ],
+            "description": "Configures PHP 5.x to throw PHP 7 exceptions when possible",
+            "homepage": "https://github.com/TendoAki/php-7-exceptions-in-php-5",
+            "time": "2015-07-23 15:44:08"
+        },
+        {
             "name": "behat/mink",
             "version": "v1.6.1",
             "source": {
diff --git a/core/core.api.php b/core/core.api.php
index de34440..e9a6733 100644
--- a/core/core.api.php
+++ b/core/core.api.php
@@ -1000,7 +1000,7 @@
  * verified with standard control structures at all times, not just checked in
  * development environments with assert() statements on.
  *
- * When runtime assertions fail in PHP 7 an \AssertionException is thrown.
+ * When runtime assertions fail in PHP 7 an \AssertionError is thrown.
  * Drupal uses an assertion callback to do the same in PHP 5.x so that unit
  * tests involving runtime assertions will work uniformly across both versions.
  *
diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index fd27416..249df11 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -870,6 +870,9 @@ public static function bootEnvironment() {
         // Simpletest's internal browser.
         define('DRUPAL_TEST_IN_CHILD_SITE', TRUE);
 
+        // Force runtime assertions to on during tests.
+        assert_options(ASSERT_ACTIVE, TRUE);
+
         // Log fatal errors to the test site directory.
         ini_set('log_errors', 1);
         ini_set('error_log', DRUPAL_ROOT . '/sites/simpletest/' . substr($test_prefix, 10) . '/error.log');
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 52243c8..b59dc79 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -322,7 +322,14 @@ function _simpletest_batch_operation($test_list_init, $test_id, &$context) {
   // Perform the next test.
   $test_class = array_shift($test_list);
   $test = new $test_class($test_id);
+
+  // Make sure runtime assertions are on.
+  $runtime_assert_mode_before_test = assert_options(ASSERT_ACTIVE);
+  assert_options(ASSERT_ACTIVE, TRUE);
   $test->run();
+
+  // Set them back to their previous state.
+  assert_options(ASSERT_ACTIVE, $runtime_assert_mode_before_test);
   $size = count($test_list);
   $info = TestDiscovery::getTestInfo($test_class);
 
diff --git a/core/modules/simpletest/src/Tests/SimpleTestTest.php b/core/modules/simpletest/src/Tests/SimpleTestTest.php
index 1f97845..c8db34f 100644
--- a/core/modules/simpletest/src/Tests/SimpleTestTest.php
+++ b/core/modules/simpletest/src/Tests/SimpleTestTest.php
@@ -164,7 +164,16 @@ function stubTest() {
     $site_path = $this->container->get('site.path');
     file_put_contents($key_file, $private_key);
 
-    // This causes the first of the fifteen passes asserted in
+    // Check to see if runtime assertions are indeed on, if successful this
+    // will be the first of sixteen passes asserted in confirmStubResults()
+    try {
+      assert(FALSE);
+      $this->fail('Runtime Assertions are not working.');
+    } catch (\AssertionError $e) {
+      $this->pass('Runtime Assertions Enabled and running.');
+    }
+
+    // This causes the second of the sixteen passes asserted in
     // confirmStubResults().
     $this->pass($this->passMessage);
 
@@ -175,7 +184,7 @@ function stubTest() {
     // confirmStubResults().
     $this->fail($this->failMessage);
 
-    // This causes the second to fourth of the fifteen passes asserted in
+    // This causes the third to fifth of the sixteen passes asserted in
     // confirmStubResults().
     $user = $this->drupalCreateUser(array($this->validPermission), 'SimpleTestTest');
 
@@ -183,15 +192,15 @@ function stubTest() {
     $this->drupalCreateUser(array($this->invalidPermission));
 
     // Test logging in as a user.
-    // This causes the fifth to ninth of the fifteen passes asserted in
+    // This causes the sixth to tenth of the sixteen passes asserted in
     // confirmStubResults().
     $this->drupalLogin($user);
 
-    // This causes the tenth of the fifteen passes asserted in
+    // This causes the eleventh of the sixteen passes asserted in
     // confirmStubResults().
     $this->pass(t('Test ID is @id.', array('@id' => $this->testId)));
 
-    // These cause the eleventh to fourteenth of the fifteen passes asserted in
+    // These cause the twelth to fifteenth of the sixteen passes asserted in
     // confirmStubResults().
     $this->assertTrue(file_exists($site_path . '/settings.testing.php'));
     // Check the settings.testing.php file got included.
@@ -206,7 +215,7 @@ function stubTest() {
     // Generates a warning inside a PHP function.
     array_key_exists(NULL, NULL);
 
-    // This causes the fifteenth of the fifteen passes asserted in
+    // This causes the sixteenth of the sixteen passes asserted in
     // confirmStubResults().
     $this->assertNothing();
 
@@ -250,7 +259,7 @@ function confirmStubTestResults() {
 
     $this->assertAssertion("Debug: 'Foo'", 'Debug', 'Fail', 'SimpleTestTest.php', 'Drupal\simpletest\Tests\SimpleTestTest->stubTest()');
 
-    $this->assertEqual('15 passes, 3 fails, 2 exceptions, 3 debug messages', $this->childTestResults['summary']);
+    $this->assertEqual('16 passes, 3 fails, 2 exceptions, 3 debug messages', $this->childTestResults['summary']);
 
     $this->testIds[] = $test_id = $this->getTestIdFromResults();
     $this->assertTrue($test_id, 'Found test ID in results.');
diff --git a/core/vendor/aki-tendo/php7exception/.travis.yml b/core/vendor/aki-tendo/php7exception/.travis.yml
new file mode 100644
index 0000000..01207cb
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/.travis.yml
@@ -0,0 +1,8 @@
+language: php
+php:
+- 5.3
+- 5.4
+- 5.5
+- 5.6
+- 7.0
+script: phpunit tests/AssertionErrorTest.php
diff --git a/core/vendor/aki-tendo/php7exception/LICENSE b/core/vendor/aki-tendo/php7exception/LICENSE
new file mode 100644
index 0000000..df564ad
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/LICENSE
@@ -0,0 +1,21 @@
+                            The MIT License (MIT)
+
+                  Copyright (c) 2015 Michael Lloyd Morris
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/core/vendor/aki-tendo/php7exception/README.md b/core/vendor/aki-tendo/php7exception/README.md
new file mode 100644
index 0000000..cf1b5aa
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/README.md
@@ -0,0 +1,16 @@
+# php-7-exceptions-in-php-5
+
+PHP 7 can throw exceptions in many situations where PHP 5.x uses errors.
+Taking advantage of this feature can make writing unit tests that pass both
+versions something of a headache. The goal of this package is to alleviate this
+headache by making applying the exception throwing behavior across both
+versions.
+
+This is version 1.0 and only addresses assert() statement failures by using
+the assert callback to throw an AssertionError when such a statement fails.
+This allows a PHPUnit test to use the annotation "@expectedException
+AssertionError" to check the assertion and not worry about whether the test
+is running under PHP 5.x or 7.
+
+Subsequent versions of this package will deal with other error types, starting
+with the various errors in group E_RECOVERABLE_ERROR.
diff --git a/core/vendor/aki-tendo/php7exception/composer.json b/core/vendor/aki-tendo/php7exception/composer.json
new file mode 100644
index 0000000..71e1c36
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/composer.json
@@ -0,0 +1,22 @@
+{
+    "name": "aki-tendo/php7exception",
+    "description": "Configures PHP 5.x to throw PHP 7 exceptions when possible",
+    "homepage": "https://github.com/TendoAki/php-7-exceptions-in-php-5",
+    "license": "MIT",
+    "authors": [
+      {
+        "name": "Michael Lloyd Morris",
+        "email": "tendoAki@gmail.com",
+        "homepage": "https://github.com/TendoAki/",
+        "role": "developer"
+      }
+    ],
+    "require": {
+        "php": ">=5.3.0"
+    },
+    "autoload": {
+      "files": [
+        "php7exceptions.php"
+      ]
+    }
+}
diff --git a/core/vendor/aki-tendo/php7exception/php7exceptions.php b/core/vendor/aki-tendo/php7exception/php7exceptions.php
new file mode 100644
index 0000000..250ad78d
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/php7exceptions.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * @file
+ * Unify some error handling between PHP 5 and 7 to simplify unit tests.
+ *
+ * @package aki-tendo/php7exception
+ * @author Michael Lloyd Morris
+ */
+
+// PHP 5 - we must establish an AssertionError to throw and a assert callback
+// handle to throw it.
+if (version_compare(PHP_VERSION, '7.0.0-dev') === -1) {
+  class AssertionError extends Exception {}
+
+  // Assertions throws.
+  assert_options(ASSERT_CALLBACK, function($file, $line, $code, $message = '') {
+    if (empty($message)) {
+      $message = "Assertion Failure in {$file} at {$line}. Failed asserting {$code}";
+    }
+    throw new AssertionError($message);
+  });
+}
+// PHP 7 - simply turn on assertion exception throwing.
+else {
+  assert_options(ASSERT_EXCEPTION, 1);
+}
+
diff --git a/core/vendor/aki-tendo/php7exception/tests/AssertionErrorTest.php b/core/vendor/aki-tendo/php7exception/tests/AssertionErrorTest.php
new file mode 100644
index 0000000..73d411e
--- /dev/null
+++ b/core/vendor/aki-tendo/php7exception/tests/AssertionErrorTest.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @file
+ * Contains \AssertionErrorTest.
+ *
+ * @package aki-tendo/php7exception
+ * @author Michael Lloyd Morris
+ */
+
+require_once __DIR__ . '/../php7exceptions.php';
+assert_options(ASSERT_ACTIVE, 1);
+
+/**
+ * Tests assertion error conversion to correct PHP 7 exception class.
+ */
+class AssertionErrorTest extends PHPUnit_Framework_TestCase {
+  /**
+   * @expectedException AssertionError
+   */
+  public function testAssertErrorThrow() {
+    assert(false);
+  }
+
+  /**
+   * Tests turning assertion exceptions on doesn't turn assertions on in PHP 7.
+   *
+   * Currently the ASSERT_EXCEPTION setting doesn't activate assertions on its
+   * own. It probably never will, but keeping this test around out of paranoia.
+   */
+  public function testAssertException() {
+    if (version_compare(PHP_VERSION, '7.0.0-dev') >= 0) {
+      assert_options(ASSERT_ACTIVE, 0);
+      assert_options(ASSERT_EXCEPTION, 0);
+      // This line will be skipped.
+      assert(false);
+      assert_options(ASSERT_EXCEPTION, 1);
+      // This line SHOULD be skipped.
+      assert(false);
+    }
+    // If we reach this line, all is well.
+    $this->assertTrue(TRUE);
+  }
+}
diff --git a/core/vendor/composer/autoload_files.php b/core/vendor/composer/autoload_files.php
index 6f932aa..79f3e25 100644
--- a/core/vendor/composer/autoload_files.php
+++ b/core/vendor/composer/autoload_files.php
@@ -9,5 +9,6 @@
     $vendorDir . '/guzzlehttp/psr7/src/functions.php',
     $vendorDir . '/guzzlehttp/promises/src/functions.php',
     $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
+    $vendorDir . '/aki-tendo/php7exception/php7exceptions.php',
     $baseDir . '/lib/Drupal.php',
 );
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index e063543..dfb6b9d 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -3477,5 +3477,46 @@
             "validation",
             "validator"
         ]
+    },
+    {
+        "name": "aki-tendo/php7exception",
+        "version": "1.0.2",
+        "version_normalized": "1.0.2.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/TendoAki/php-7-exceptions-in-php-5.git",
+            "reference": "96927887c38850d44ce418c3a24e5a7c0acf1dd1"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/TendoAki/php-7-exceptions-in-php-5/zipball/96927887c38850d44ce418c3a24e5a7c0acf1dd1",
+            "reference": "96927887c38850d44ce418c3a24e5a7c0acf1dd1",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.0"
+        },
+        "time": "2015-07-23 15:44:08",
+        "type": "library",
+        "installation-source": "source",
+        "autoload": {
+            "files": [
+                "php7exceptions.php"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Michael Lloyd Morris",
+                "email": "tendoAki@gmail.com",
+                "homepage": "https://github.com/TendoAki/",
+                "role": "developer"
+            }
+        ],
+        "description": "Configures PHP 5.x to throw PHP 7 exceptions when possible",
+        "homepage": "https://github.com/TendoAki/php-7-exceptions-in-php-5"
     }
 ]
