// Copyright (c) 2020 Ecma International.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-assignment-operators-runtime-semantics-evaluation
description: >
    Strict Mode - TypeError is thrown if The LeftHandSide of a Logical
    Assignment operator(||=) is a reference to a non-existent property
    of an object whose [[Extensible]] internal property is false.
flags: [onlyStrict]
features: [logical-assignment-operators]

---*/

var obj = {};
Object.preventExtensions(obj);

assert.throws(TypeError, function() {
  obj.prop ||= 1;
});
assert.sameValue(obj.prop, undefined, "obj.prop");
