// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-ClassExpression
description: >
  ClassExpression should directly set [[Prototype]] internal slot.
info: |
  ClassDefinitionEvaluation

  [...]
  7. Let proto be ObjectCreate(protoParent).

  ObjectCreate ( proto [ , internalSlotsList ] )

  [...]
  4. Set obj.[[Prototype]] to proto.
features: [class]
---*/

Object.defineProperty(Object.prototype, '__proto__', {
  set: function() {
    throw new Test262Error('should not be called');
  },
});

var A = class extends Array {};

assert.sameValue(new A(1).length, 1);
