33 lines
		
	
	
		
			806 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			806 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
var d              = require("d")
 | 
						|
  , isSymbol       = require("../is-symbol")
 | 
						|
  , defineProperty = Object.defineProperty;
 | 
						|
 | 
						|
module.exports = function (t, a) {
 | 
						|
	var symbol = t("test"), obj = {};
 | 
						|
	defineProperty(obj, symbol, d("foo"));
 | 
						|
	a(obj.test, undefined, "Name");
 | 
						|
	a(obj[symbol], "foo", "Get");
 | 
						|
	a(obj instanceof t, false);
 | 
						|
 | 
						|
	a(isSymbol(symbol), true, "Symbol");
 | 
						|
	a(isSymbol(t.iterator), true, "iterator");
 | 
						|
	a(isSymbol(t.toStringTag), true, "toStringTag");
 | 
						|
 | 
						|
	obj = {};
 | 
						|
	obj[symbol] = "foo";
 | 
						|
	if (typeof symbol !== "symbol") {
 | 
						|
		a.deep(Object.getOwnPropertyDescriptor(obj, symbol), {
 | 
						|
			configurable: true,
 | 
						|
			enumerable: false,
 | 
						|
			value: "foo",
 | 
						|
			writable: true
 | 
						|
		});
 | 
						|
	}
 | 
						|
	symbol = t.for("marko");
 | 
						|
	a(isSymbol(symbol), true);
 | 
						|
	a(t.for("marko"), symbol);
 | 
						|
	a(t.keyFor(symbol), "marko");
 | 
						|
};
 |