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");
 | |
| };
 |