|  | // Copyright 2017 the V8 project authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | function set_x(v) { | 
|  | x = v; | 
|  | } | 
|  |  | 
|  | var o = {}; | 
|  | set_x(o); | 
|  | set_x(o); | 
|  | assertEquals(o, x); | 
|  | Object.defineProperty(this, "x", { value:5, writable:false, configurable:true }); | 
|  | assertEquals(5, x); | 
|  | set_x(o); | 
|  | set_x(o); | 
|  | assertEquals(5, x); | 
|  | Object.defineProperty(this, "x", { value:42, writable:true, configurable:true }); | 
|  | assertEquals(42, x); | 
|  | set_x(o); | 
|  | assertEquals(o, x); |