<!DOCTYPE html>
<meta charset=utf-8>
<title>Test for ...</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  var desc = Object.getOwnPropertyDescriptor(Promise, Symbol.species);
  assert_not_equals(desc, undefined, "Should have a property");

  assert_equals(desc.configurable, true, "Property should be configurable");
  assert_equals(desc.enumerable, false, "Property should not be enumerable");
  assert_equals(desc.set, undefined, "Should not have a setter");
  var getter = desc.get;

  var things = [undefined, null, 5, "xyz", Promise, Object];
  for (var thing of things) {
    assert_equals(getter.call(thing), thing,
                  "Getter should return its this value");
  }

}, "Promise should have an @@species getter that works per spec");
</script>