diff --git a/test/built-ins/Object/getOwnPropertyNames/non-object-argument-invalid.js b/test/built-ins/Object/getOwnPropertyNames/non-object-argument-invalid.js
new file mode 100644
index 0000000000..b0a0fdcd2b
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertyNames/non-object-argument-invalid.js
@@ -0,0 +1,33 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-object.getownpropertynames
+description: >
+    Object.getOwnPropertyNames called with an invalid non-object value
+info: |
+  GetOwnPropertyKeys ( O, type )
+
+  Let obj be ? ToObject(O).
+  Let keys be ? obj.[[OwnPropertyKeys]]().
+  Let nameList be a new empty List.
+  For each element nextKey of keys, do
+    If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
+      Append nextKey as the last element of nameList.
+  Return CreateArrayFromList(nameList).
+
+features: [Symbol]
+---*/
+
+let count = 0;
+
+assert.throws(TypeError, () => {
+  count++;
+  Object.getOwnPropertyNames(undefined);
+}, '`Object.getOwnPropertyNames(undefined)` throws TypeError');
+
+assert.throws(TypeError, () => {
+  count++;
+  Object.getOwnPropertyNames(null);
+}, '`Object.getOwnPropertyNames(null)` throws TypeError');
+
+assert.sameValue(count, 2, 'The value of `count` is 2');
diff --git a/test/built-ins/Object/getOwnPropertyNames/non-object-argument-valid.js b/test/built-ins/Object/getOwnPropertyNames/non-object-argument-valid.js
new file mode 100644
index 0000000000..ba6113a057
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertyNames/non-object-argument-valid.js
@@ -0,0 +1,45 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-object.getownpropertynames
+description: >
+    Object.getOwnPropertyNames called with a valid non-object value
+info: |
+  GetOwnPropertyKeys ( O, type )
+
+  Let obj be ? ToObject(O).
+  Let keys be ? obj.[[OwnPropertyKeys]]().
+  Let nameList be a new empty List.
+  For each element nextKey of keys, do
+    If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
+      Append nextKey as the last element of nameList.
+  Return CreateArrayFromList(nameList).
+
+features: [Symbol]
+includes: [compareArray.js]
+---*/
+
+assert.compareArray(
+  Object.getOwnPropertyNames(true), [],
+  'Object.getOwnPropertyNames(true) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertyNames(false), [],
+  'Object.getOwnPropertyNames(false) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertyNames(1), [],
+  'Object.getOwnPropertyNames(1) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertyNames(0), [],
+  'Object.getOwnPropertyNames(0) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertyNames(""), ["length"],
+  'Object.getOwnPropertyNames("") must return ["length"]'
+);
+assert.compareArray(
+  Object.getOwnPropertyNames(Symbol()), [],
+  'Object.getOwnPropertyNames(Symbol()) must return []'
+);
diff --git a/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-invalid.js b/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-invalid.js
new file mode 100644
index 0000000000..66e92e7a0c
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-invalid.js
@@ -0,0 +1,33 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-object.getownpropertysymbols
+description: >
+    Object.getOwnPropertySymbols called with an invalid non-object value
+info: |
+  GetOwnPropertyKeys ( O, type )
+
+  Let obj be ? ToObject(O).
+  Let keys be ? obj.[[OwnPropertyKeys]]().
+  Let nameList be a new empty List.
+  For each element nextKey of keys, do
+    If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
+      Append nextKey as the last element of nameList.
+  Return CreateArrayFromList(nameList).
+
+features: [Symbol]
+---*/
+
+let count = 0;
+
+assert.throws(TypeError, () => {
+  count++;
+  Object.getOwnPropertySymbols(undefined);
+}, '`Object.getOwnPropertySymbols(undefined)` throws TypeError');
+
+assert.throws(TypeError, () => {
+  count++;
+  Object.getOwnPropertySymbols(null);
+}, '`Object.getOwnPropertySymbols(null)` throws TypeError');
+
+assert.sameValue(count, 2, 'The value of `count` is 2');
diff --git a/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-valid.js b/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-valid.js
new file mode 100644
index 0000000000..bcfdd53da8
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-valid.js
@@ -0,0 +1,45 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-object.getownpropertysymbols
+description: >
+    Object.getOwnPropertySymbols called with a valid non-object value
+info: |
+  GetOwnPropertyKeys ( O, type )
+
+  Let obj be ? ToObject(O).
+  Let keys be ? obj.[[OwnPropertyKeys]]().
+  Let nameList be a new empty List.
+  For each element nextKey of keys, do
+    If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
+      Append nextKey as the last element of nameList.
+  Return CreateArrayFromList(nameList).
+
+features: [Symbol]
+includes: [compareArray.js]
+---*/
+
+assert.compareArray(
+  Object.getOwnPropertySymbols(true), [],
+  'Object.getOwnPropertySymbols(true) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertySymbols(false), [],
+  'Object.getOwnPropertySymbols(false) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertySymbols(1), [],
+  'Object.getOwnPropertySymbols(1) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertySymbols(0), [],
+  'Object.getOwnPropertySymbols(0) must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertySymbols(""), [],
+  'Object.getOwnPropertySymbols("") must return []'
+);
+assert.compareArray(
+  Object.getOwnPropertySymbols(Symbol()), [],
+  'Object.getOwnPropertySymbols(Symbol()) must return []'
+);