proxies-object-assign.js 651 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
// Copyright 2015 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.

var handler = {
  ownKeys: function(t) { return ["a", "b"]; },
  getOwnPropertyDescriptor: function(t, p) {
    return {enumerable: true, configurable: true}
  },
  get: function(t, p) {
    return 1;
  }
};

var proxy = new Proxy({}, handler);

var o = {};

Object.assign(o, proxy);

assertEquals({"a": 1, "b": 1}, o);

(function TestStringSources() {
  var source = "abc";
  var target = {};
  Object.assign(target, source);
  assertEquals({0: "a", 1: "b", 2: "c"}, target);
})();