diff --git a/core/modules/book/lib/Drupal/book/Tests/BookTest.php b/core/modules/book/lib/Drupal/book/Tests/BookTest.php
index f15c9a80065e5f00508797a074d875997cf85932..b13a4e7200d62ac3116e7fc5f29da3810e2828dc 100644
--- a/core/modules/book/lib/Drupal/book/Tests/BookTest.php
+++ b/core/modules/book/lib/Drupal/book/Tests/BookTest.php
@@ -384,7 +384,7 @@ function testBookDelete() {
      foreach ($nodes as $node) {
        $nids[] = $node->nid;
      }
-     node_delete_multiple($nids);
+     entity_delete_multiple('node', $nids);
      $this->drupalPost('node/' . $this->book->nid . '/outline/remove', $edit, t('Remove'));
      $node = node_load($this->book->nid, TRUE);
      $this->assertTrue(empty($node->book), 'Deleting childless top-level book node properly allowed.');
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
index 55236745b050b1b234cfc8d565b7388e955400e0..315ab403046581a227396fa15e488dace62f50be 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
@@ -170,7 +170,7 @@ function setEnvironment(array $info) {
     variable_set('comment_anonymous_' . $this->node->type, $info['contact']);
     if ($this->node->comment != $info['comments']) {
       $this->node->comment = $info['comments'];
-      node_save($this->node);
+      $this->node->save();
     }
 
     // Change user settings.
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentNodeChangesTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentNodeChangesTest.php
index e932f68d53afcc63d72454f7c5f4e5a422b6864b..29d72d0428f2ec12e6a44a5100625db9f922f825 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentNodeChangesTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentNodeChangesTest.php
@@ -27,7 +27,7 @@ function testNodeDeletion() {
     $this->drupalLogin($this->web_user);
     $comment = $this->postComment($this->node, $this->randomName(), $this->randomName());
     $this->assertTrue($comment->id(), 'The comment could be loaded.');
-    node_delete($this->node->nid);
+    $this->node->delete();
     $this->assertFalse(comment_load($comment->id()), 'The comment could not be loaded after the node was deleted.');
   }
 }
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentRssTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentRssTest.php
index 86d256abb696ad09330d66f5625dc326f85f9650..f8af21bdc793d690e4881bdd2d5efff4dfab7c14 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentRssTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentRssTest.php
@@ -40,7 +40,7 @@ function testCommentRss() {
 
     // Hide comments from RSS feed and check presence.
     $this->node->comment = COMMENT_NODE_HIDDEN;
-    node_save($this->node);
+    $this->node->save();
     $this->drupalGet('rss.xml');
     $this->assertNoRaw($raw, 'Hidden comments is not a part of RSS feed.');
   }
diff --git a/core/modules/file/lib/Drupal/file/Tests/FileFieldWidgetTest.php b/core/modules/file/lib/Drupal/file/Tests/FileFieldWidgetTest.php
index 50c8dbd208da0688350d0ec07cb391210d7e8548..359c6b3122894ecd2de6a0df412ed1e146a0c7a2 100644
--- a/core/modules/file/lib/Drupal/file/Tests/FileFieldWidgetTest.php
+++ b/core/modules/file/lib/Drupal/file/Tests/FileFieldWidgetTest.php
@@ -229,7 +229,7 @@ function testPrivateFileSetting() {
     $this->assertFieldByXpath('//input[@id="edit-field-settings-uri-scheme-public" and @disabled="disabled"]', 'public', t('Upload destination setting disabled.'));
 
     // Delete node and confirm that setting could be changed.
-    node_delete($nid);
+    $node->delete();
     $this->drupalGet("admin/structure/types/manage/$type_name/fields/$instance->id/field");
     $this->assertFieldByXpath('//input[@id="edit-field-settings-uri-scheme-public" and not(@disabled)]', 'public', t('Upload destination setting enabled.'));
   }
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
index 6898bc644f68876e9473a20d292966e73afafb86..e0db862cf4c12b1c4dc1aa09a45ad374abca7803 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
@@ -51,7 +51,7 @@ function setUp() {
         $revision = clone $nodes[$type];
         $revision->setNewRevision();
         $revision->log = $this->randomName(32);
-        node_save($revision);
+        $revision->save();
         $this->node_revisions[$type][] = $revision;
       }
     }
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
index 9415b6b19c9741d5d64d9e00d27e08fa854389da..640175ae6d4a7d7bb8e5d4bc5f7e6fd775f7f9c3 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
@@ -140,7 +140,7 @@ function testRevisions() {
     // Save this as a non-default revision.
     $new_node_revision->setNewRevision();
     $new_node_revision->isDefaultRevision = FALSE;
-    node_save($new_node_revision);
+    $new_node_revision->save();
 
     $this->drupalGet("node/$node->nid");
     $this->assertNoText($new_body, 'Revision body text is not present on default version of node.');
diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc
index 69b6b0a07a9e797a9b5a9d49b69fbee130ff7a5b..39b54f197659eafd7b2b8bb91a101489c5260dab 100644
--- a/core/modules/node/node.admin.inc
+++ b/core/modules/node/node.admin.inc
@@ -699,7 +699,7 @@ function node_multiple_delete_confirm($form, &$form_state, $nodes) {
  */
 function node_multiple_delete_confirm_submit($form, &$form_state) {
   if ($form_state['values']['confirm']) {
-    node_delete_multiple(array_keys($form_state['values']['nodes']));
+    entity_delete_multiple('node', array_keys($form_state['values']['nodes']));
     $count = count($form_state['values']['nodes']);
     watchdog('content', 'Deleted @count posts.', array('@count' => $count));
     drupal_set_message(format_plural($count, 'Deleted 1 post.', 'Deleted @count posts.'));
diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index b6cd02448b26f51197bd202f5b383202c1b3af31..b45839234599e8ea81e1e1b53fc10dfbecf0318c 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -39,7 +39,7 @@
  * - Instantiating a new node:
  *   - hook_node_create() (all)
  *   - hook_entity_create() (all)
- * - Creating a new node (calling node_save() on a new node):
+ * - Creating a new node (calling $node->save() on a new node):
  *   - field_attach_presave()
  *   - hook_node_presave() (all)
  *   - hook_entity_presave() (all)
@@ -50,7 +50,7 @@
  *   - hook_entity_insert() (all)
  *   - hook_node_access_records() (all)
  *   - hook_node_access_records_alter() (all)
- * - Updating an existing node (calling node_save() on an existing node):
+ * - Updating an existing node (calling $node->save() on an existing node):
  *   - field_attach_presave()
  *   - hook_node_presave() (all)
  *   - hook_entity_presave() (all)
@@ -89,7 +89,7 @@
  *   - hook_entity_view() (all)
  *   - hook_node_view_alter() (all)
  *   - hook_entity_view_alter() (all)
- * - Deleting a node (calling node_delete() or node_delete_multiple()):
+ * - Deleting a node (calling $node->delete() or entity_delete_multiple()):
  *   - Node is loaded (see Loading section above)
  *   - hook_delete() (node-type-specific)
  *   - hook_node_predelete() (all)
@@ -462,7 +462,7 @@ function hook_node_operations() {
 /**
  * Act before node deletion.
  *
- * This hook is invoked from node_delete_multiple() after the type-specific
+ * This hook is invoked from entity_delete_multiple() after the type-specific
  * hook_delete() has been invoked, but before hook_entity_predelete() and
  * field_attach_delete() are called, and before the node is removed from the
  * node table in the database.
@@ -471,7 +471,7 @@ function hook_node_operations() {
  *   The node that is about to be deleted.
  *
  * @see hook_node_predelete()
- * @see node_delete_multiple()
+ * @see entity_delete_multiple()
  * @ingroup node_api_hooks
  */
 function hook_node_predelete(\Drupal\Core\Entity\EntityInterface $node) {
@@ -483,14 +483,14 @@ function hook_node_predelete(\Drupal\Core\Entity\EntityInterface $node) {
 /**
  * Respond to node deletion.
  *
- * This hook is invoked from node_delete_multiple() after field_attach_delete()
+ * This hook is invoked from entity_delete_multiple() after field_attach_delete()
  * has been called and after the node has been removed from the database.
  *
  * @param \Drupal\Core\Entity\EntityInterface $node
  *   The node that has been deleted.
  *
  * @see hook_node_predelete()
- * @see node_delete_multiple()
+ * @see entity_delete_multiple()
  * @ingroup node_api_hooks
  */
 function hook_node_delete(\Drupal\Core\Entity\EntityInterface $node) {
@@ -518,7 +518,7 @@ function hook_node_revision_delete(\Drupal\Core\Entity\EntityInterface $node) {
 /**
  * Respond to creation of a new node.
  *
- * This hook is invoked from node_save() after the database query that will
+ * This hook is invoked from $node->save() after the database query that will
  * insert the node into the node table is scheduled for execution, after the
  * type-specific hook_insert() is invoked, and after field_attach_insert() is
  * called.
@@ -526,10 +526,10 @@ function hook_node_revision_delete(\Drupal\Core\Entity\EntityInterface $node) {
  * Note that when this hook is invoked, the changes have not yet been written to
  * the database, because a database transaction is still in progress. The
  * transaction is not finalized until the save operation is entirely completed
- * and node_save() goes out of scope. You should not rely on data in the
+ * and $node->save() goes out of scope. You should not rely on data in the
  * database at this time as it is not updated yet. You should also note that any
  * write/update database queries executed from this hook are also not committed
- * immediately. Check node_save() and db_transaction() for more info.
+ * immediately. Check $node->save() and db_transaction() for more info.
  *
  * @param \Drupal\Core\Entity\EntityInterface $node
  *   The node that is being created.
@@ -718,7 +718,7 @@ function hook_node_search_result(\Drupal\Core\Entity\EntityInterface $node, $lan
 /**
  * Act on a node being inserted or updated.
  *
- * This hook is invoked from node_save() before the node is saved to the
+ * This hook is invoked from $node->save() before the node is saved to the
  * database.
  *
  * @param \Drupal\Core\Entity\EntityInterface $node
@@ -738,7 +738,7 @@ function hook_node_presave(\Drupal\Core\Entity\EntityInterface $node) {
 /**
  * Respond to updates to a node.
  *
- * This hook is invoked from node_save() after the database query that will
+ * This hook is invoked from $node->save() after the database query that will
  * update node in the node table is scheduled for execution, after the
  * type-specific hook_update() is invoked, and after field_attach_update() is
  * called.
@@ -746,10 +746,10 @@ function hook_node_presave(\Drupal\Core\Entity\EntityInterface $node) {
  * Note that when this hook is invoked, the changes have not yet been written to
  * the database, because a database transaction is still in progress. The
  * transaction is not finalized until the save operation is entirely completed
- * and node_save() goes out of scope. You should not rely on data in the
+ * and $node->save() goes out of scope. You should not rely on data in the
  * database at this time as it is not updated yet. You should also note that any
  * write/update database queries executed from this hook are also not committed
- * immediately. Check node_save() and db_transaction() for more info.
+ * immediately. Check $node->save() and db_transaction() for more info.
  *
  * @param \Drupal\Core\Entity\EntityInterface $node
  *   The node that is being updated.
@@ -1092,7 +1092,7 @@ function hook_node_type_delete($info) {
  * This hook is invoked only on the module that defines the node's content type
  * (use hook_node_delete() to respond to all node deletions).
  *
- * This hook is invoked from node_delete_multiple() after the node has been
+ * This hook is invoked from entity_delete_multiple() after the node has been
  * removed from the node table in the database, before hook_node_delete() is
  * invoked, and before field_attach_delete() is called.
  *
@@ -1200,7 +1200,7 @@ function hook_form(\Drupal\Core\Entity\EntityInterface $node, &$form_state) {
  * This hook is invoked only on the module that defines the node's content type
  * (use hook_node_insert() to act on all node insertions).
  *
- * This hook is invoked from node_save() after the node is inserted into the
+ * This hook is invoked from $node->save() after the node is inserted into the
  * node table in the database, before field_attach_insert() is called, and
  * before hook_node_insert() is invoked.
  *
@@ -1259,7 +1259,7 @@ function hook_load($nodes) {
  * This hook is invoked only on the module that defines the node's content type
  * (use hook_node_update() to act on all node updates).
  *
- * This hook is invoked from node_save() after the node is updated in the
+ * This hook is invoked from $node->save() after the node is updated in the
  * node table in the database, before field_attach_update() is called, and
  * before hook_node_update() is invoked.
  *
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 2cd835f320c2faf680684f17d34ae6b8c1a2723e..1aebdd5549acfc883bcae6d6d125b16a244317b9 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -984,40 +984,6 @@ function node_submit(EntityInterface $node) {
   return $node;
 }
 
-/**
- * Saves changes to a node or adds a new node.
- *
- * @param \Drupal\Core\Entity\EntityInterface $node
- *   The $node entity to be saved. If $node->nid is
- *   omitted (or $node->is_new is TRUE), a new node will be added.
- */
-function node_save(EntityInterface $node) {
-  $node->save();
-}
-
-/**
- * Deletes a node.
- *
- * @param $nid
- *   A node ID.
- */
-function node_delete($nid) {
-  node_delete_multiple(array($nid));
-}
-
-/**
- * Deletes multiple nodes.
- *
- * @param $nids
- *   An array of node IDs.
- *
- * @see hook_node_predelete()
- * @see hook_node_delete()
- */
-function node_delete_multiple($nids) {
-  entity_delete_multiple('node', $nids);
-}
-
 /**
  * Deletes a node revision.
  *
@@ -1469,7 +1435,7 @@ function node_user_predelete($account) {
     ->condition('uid', $account->uid)
     ->execute()
     ->fetchCol();
-  node_delete_multiple($nodes);
+  entity_delete_multiple('node', $nodes);
   // Delete old revisions.
   $revisions = db_query('SELECT DISTINCT vid FROM {node_field_revision} WHERE uid = :uid', array(':uid' => $account->uid))->fetchCol();
   foreach ($revisions as $revision) {
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index 9aa4982f736afa5fa37b312933f6c8665d635e87..f2391be3d51594f44bb865b49bc9fdc304df4167 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -224,7 +224,7 @@ function node_delete_confirm($form, &$form_state, $node) {
 function node_delete_confirm_submit($form, &$form_state) {
   if ($form_state['values']['confirm']) {
     $node = node_load($form_state['values']['nid']);
-    node_delete($form_state['values']['nid']);
+    $node->delete();
     watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->label()));
     drupal_set_message(t('@type %title has been deleted.', array('@type' => node_get_type_label($node), '%title' => $node->label())));
   }
diff --git a/core/modules/node/tests/modules/node_test/node_test.module b/core/modules/node/tests/modules/node_test/node_test.module
index f3fd04b57a0e7731c5a5d23c227fca2b3cca66d7..d726df5d567f55b0ca4d9c605fc32f7a517bfdaf 100644
--- a/core/modules/node/tests/modules/node_test/node_test.module
+++ b/core/modules/node/tests/modules/node_test/node_test.module
@@ -177,6 +177,6 @@ function node_test_node_insert(EntityInterface $node) {
   // Set the node title to the node ID and save.
   if ($node->title == 'new') {
     $node->title = 'Node '. $node->nid;
-    node_save($node);
+    $node->save();
   }
 }
diff --git a/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php b/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
index 3d54c817503d0b78efb2bf1fb460783c4c3e4345..f28fb7c0e0afe770a3a8be4f6b49dd42a2660807 100644
--- a/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
+++ b/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
@@ -95,7 +95,7 @@ function testOptionsAllowedValuesInteger() {
     $this->assertAllowedValuesInput("0|Zero", 'some values are being removed while currently in use', 'Values in use cannot be removed.');
 
     // Delete the node, remove the value.
-    node_delete($node->nid);
+    $node->delete();
     $string = "0|Zero";
     $array = array('0' => 'Zero');
     $this->assertAllowedValuesInput($string, $array, 'Values not in use can be removed.');
@@ -145,7 +145,7 @@ function testOptionsAllowedValuesFloat() {
     $this->assertAllowedValuesInput("0|Zero", 'some values are being removed while currently in use', 'Values in use cannot be removed.');
 
     // Delete the node, remove the value.
-    node_delete($node->nid);
+    $node->delete();
     $string = "0|Zero";
     $array = array('0' => 'Zero');
     $this->assertAllowedValuesInput($string, $array, 'Values not in use can be removed.');
@@ -200,7 +200,7 @@ function testOptionsAllowedValuesText() {
     $this->assertAllowedValuesInput("Zero", 'some values are being removed while currently in use', 'Values in use cannot be removed.');
 
     // Delete the node, remove the value.
-    node_delete($node->nid);
+    $node->delete();
     $string = "Zero";
     $array = array('Zero' => 'Zero');
     $this->assertAllowedValuesInput($string, $array, 'Values not in use can be removed.');
diff --git a/core/modules/search/lib/Drupal/search/Tests/SearchCommentCountToggleTest.php b/core/modules/search/lib/Drupal/search/Tests/SearchCommentCountToggleTest.php
index 5ea6932f7aad655e7bf5a2f5538fdb252b997312..2548a4cedc676bc612a8456cc0ad894887a8f09b 100644
--- a/core/modules/search/lib/Drupal/search/Tests/SearchCommentCountToggleTest.php
+++ b/core/modules/search/lib/Drupal/search/Tests/SearchCommentCountToggleTest.php
@@ -90,9 +90,9 @@ function testSearchCommentCountToggle() {
 
     // Test comment count display for nodes with comment status set to Closed
     $this->searchable_nodes['0 comments']->comment = COMMENT_NODE_CLOSED;
-    node_save($this->searchable_nodes['0 comments']);
+    $this->searchable_nodes['0 comments']->save();
     $this->searchable_nodes['1 comment']->comment = COMMENT_NODE_CLOSED;
-    node_save($this->searchable_nodes['1 comment']);
+    $this->searchable_nodes['1 comment']->save();
 
     $this->drupalPost('', $edit, t('Search'));
     $this->assertNoText(t('0 comments'), 'Empty comment count does not display for nodes with comment status set to Closed');
@@ -100,9 +100,9 @@ function testSearchCommentCountToggle() {
 
     // Test comment count display for nodes with comment status set to Hidden
     $this->searchable_nodes['0 comments']->comment = COMMENT_NODE_HIDDEN;
-    node_save($this->searchable_nodes['0 comments']);
+    $this->searchable_nodes['0 comments']->save();
     $this->searchable_nodes['1 comment']->comment = COMMENT_NODE_HIDDEN;
-    node_save($this->searchable_nodes['1 comment']);
+    $this->searchable_nodes['1 comment']->save();
 
     $this->drupalPost('', $edit, t('Search'));
     $this->assertNoText(t('0 comments'), 'Empty comment count does not display for nodes with comment status set to Hidden');
diff --git a/core/modules/search/lib/Drupal/search/Tests/SearchRankingTest.php b/core/modules/search/lib/Drupal/search/Tests/SearchRankingTest.php
index f6c86467bdffcb86372b13369ade118f9c39ef7c..e85dcd64de4685850efb66760d24d4b74c3609b7 100644
--- a/core/modules/search/lib/Drupal/search/Tests/SearchRankingTest.php
+++ b/core/modules/search/lib/Drupal/search/Tests/SearchRankingTest.php
@@ -188,7 +188,7 @@ function testHTMLRankings() {
       $this->assertEqual($set[0]['node']->nid, $node->nid, 'Search tag ranking for "<' . $tag . '>" order.');
 
       // Delete node so it doesn't show up in subsequent search results.
-      node_delete($node->nid);
+      $node->delete();
     }
   }
 
diff --git a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php
index 37c5ffdb263efc2d196afdb8a0e520579daddf37..b778c4fd386367b9f90268855fc011c1410e697b 100644
--- a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php
+++ b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsAdminTest.php
@@ -122,7 +122,7 @@ function testDeleteNode() {
       ->fetchAssoc();
     $this->assertEqual($result['nid'], $this->test_node->nid, 'Verifying that the node counter is incremented.');
 
-    node_delete($this->test_node->nid);
+    $this->test_node->delete();
 
     $result = db_select('node_counter', 'n')
       ->fields('n', array('nid'))
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
index da9db4678990336220e830d479226a4f193ca254..6b765af4d14040faba3194fba9eca380009a0903 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
@@ -324,7 +324,7 @@ public function testNodeHooks() {
     ));
 
     $_SESSION['entity_crud_hook_test'] = array();
-    node_delete($node->nid);
+    $node->delete();
 
     $this->assertHookMessageOrder(array(
       'entity_crud_hook_test_node_predelete called',
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.module b/core/modules/system/tests/modules/menu_test/menu_test.module
index ce68fe9f805902615bdaf610f006d4354c43aef1..c5a0be6ae5d3a00dc36d1658603dfee118b50642 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.module
+++ b/core/modules/system/tests/modules/menu_test/menu_test.module
@@ -14,7 +14,7 @@ function menu_test_menu() {
   // The name of the menu changes during the course of the test. Using a $_GET.
   $items['menu_name_test'] = array(
     'title' => 'Test menu_name router item',
-    'page callback' => 'node_save',
+    'page callback' => 'menu_test_callback',
     'menu_name' => menu_test_menu_name(),
   );
   // This item is of type MENU_CALLBACK with no parents to test title.
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index c531daf4f2f03fad8ed60021a6da65598c3dc3d6..f1c2e01206562ebfb74981ba8822778d7718203e 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1188,7 +1188,7 @@ function taxonomy_build_node_index($node) {
   // only data for current, published nodes.
   $status = NULL;
   if (config('taxonomy.settings')->get('maintain_index_table')) {
-    // If a node property is not set in the node object when node_save() is
+    // If a node property is not set in the node object when $node->save() is
     // called, the old value from $node->original is used.
     if (!empty($node->original)) {
       $status = (int)(!empty($node->status) || (!isset($node->status) && !empty($node->original->status)));
@@ -1207,7 +1207,7 @@ function taxonomy_build_node_index($node) {
       $field_name = $instance['field_name'];
       $field = field_info_field($field_name);
       if ($field['module'] == 'taxonomy' && $field['storage']['type'] == 'field_sql_storage') {
-        // If a field value is not set in the node object when node_save() is
+        // If a field value is not set in the node object when $node->save() is
         // called, the old value from $node->original is used.
         if (isset($node->{$field_name})) {
           $items = $node->{$field_name};
diff --git a/core/modules/tracker/lib/Drupal/tracker/Tests/TrackerTest.php b/core/modules/tracker/lib/Drupal/tracker/Tests/TrackerTest.php
index 20883adcb2c447b3724b49ac8f0f15c636bc5404..aab8d9e3874002e2a5beed0c9a7b9a2bc32d92ea 100644
--- a/core/modules/tracker/lib/Drupal/tracker/Tests/TrackerTest.php
+++ b/core/modules/tracker/lib/Drupal/tracker/Tests/TrackerTest.php
@@ -78,7 +78,7 @@ function testTrackerAll() {
     $this->assertLink(t('My recent content'), 0, 'User tab shows up on the global tracker page.');
 
     // Delete a node and ensure it no longer appears on the tracker.
-    node_delete($published->nid);
+    $published->delete();
     $this->drupalGet('tracker');
     $this->assertNoText($published->label(), 'Deleted node do not show up in the tracker listing.');
   }
diff --git a/core/scripts/generate-d6-content.sh b/core/scripts/generate-d6-content.sh
index fc4c68f96c7d17a83ee15a3c8b4adfa25971cf11..7a7e112521b79ed075c7f4af87a02a2d0e3b1f60 100644
--- a/core/scripts/generate-d6-content.sh
+++ b/core/scripts/generate-d6-content.sh
@@ -131,7 +131,7 @@
   else {
     $node->taxonomy = $node_terms;
   }
-  node_save($node);
+  $node->save();
   path_set_alias("node/$node->nid", "content/$node->created");
   if ($node->revision) {
     $user = user_load($uid + 3);
@@ -140,7 +140,7 @@
     $node->body = str_repeat("node revision body ($node->type) - $i", 100);
     $node->log = "added $i revision";
     $node->taxonomy = $node_terms;
-    node_save($node);
+    $node->save();
   }
 }
 
@@ -171,7 +171,7 @@
   for ($c = 0; $c < $nbchoices; $c++) {
     $node->choice[] = array('chtext' => "Choice $c for poll $i");
   }
-  node_save($node);
+  $node->save();
   path_set_alias("node/$node->nid", "content/poll/$i");
   path_set_alias("node/$node->nid/results", "content/poll/$i/results");
 
@@ -202,5 +202,5 @@
 $node->promote = 0;
 $node->created = 1263769200;
 $node->log = "added $i node";
-node_save($node);
+$node->save();
 path_set_alias("node/$node->nid", "content/1263769200");
diff --git a/core/scripts/generate-d7-content.sh b/core/scripts/generate-d7-content.sh
index c171271a13a2bd9bfa31651c1d1421f37bb61b86..bb81e5a2a1bdcb403b421b94e22e2d3ad6c6ca7e 100644
--- a/core/scripts/generate-d7-content.sh
+++ b/core/scripts/generate-d7-content.sh
@@ -204,7 +204,7 @@
     $node->{$field_name}[LANGUAGE_NONE][] = array('tid' => $tid);
   }
   $node->path = array('alias' => "content/$node->created");
-  node_save($node);
+  $node->save();
   if ($node->revision) {
     $user = user_load($uid + 3);
     ++$revision_id;
@@ -220,7 +220,7 @@
       $field_name = $term_vocabs[$tid];
       $node->{$field_name}[LANGUAGE_NONE][] = array('tid' => $tid);
     }
-    node_save($node);
+    $node->save();
   }
 }
 
@@ -247,7 +247,7 @@
   for ($c = 0; $c < $nbchoices; $c++) {
     $node->choice[] = array('chtext' => "Choice $c for poll $i", 'chvotes' => 0, 'weight' => 0);
   }
-  node_save($node);
+  $node->save();
   $path = array(
     'alias' => "content/poll/$i/results",
     'source' => "node/$node->nid/results",
@@ -289,7 +289,7 @@
 $node->created = 1263769200;
 $node->log = "added a broken node";
 $node->path = array('alias' => "content/1263769200");
-node_save($node);
+$node->save();
 db_update('node')
   ->fields(array(
     'type' => $node_type,