update, text, response
This commit is contained in:
15
node_modules/d/.editorconfig
generated
vendored
15
node_modules/d/.editorconfig
generated
vendored
@@ -1,15 +0,0 @@
|
||||
# EditorConfig is awesome: http://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = tab
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[{*.md,*.yml}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
1
node_modules/d/.github/FUNDING.yml
generated
vendored
1
node_modules/d/.github/FUNDING.yml
generated
vendored
@@ -1 +0,0 @@
|
||||
tidelift: "npm/d"
|
||||
6
node_modules/d/CHANGELOG.md
generated
vendored
6
node_modules/d/CHANGELOG.md
generated
vendored
@@ -2,6 +2,12 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
### [1.0.2](https://github.com/medikoo/d/compare/v1.0.1...v1.0.2) (2024-03-01)
|
||||
|
||||
### Maintenance Improvements
|
||||
|
||||
- Upgrade `type` to v2 ([43b0eb8](https://github.com/medikoo/d/commit/43b0eb845d9efad3450e0e641ea1a827a5ba1966))
|
||||
|
||||
### [1.0.1](https://github.com/medikoo/d/compare/v0.1.1...v1.0.1) (2019-06-14)
|
||||
|
||||
## Changelog for previous versions
|
||||
|
||||
2
node_modules/d/LICENSE
generated
vendored
2
node_modules/d/LICENSE
generated
vendored
@@ -1,6 +1,6 @@
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
|
||||
Copyright (c) 2013-2024, Mariusz Nowak, @medikoo, medikoo.com
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
|
||||
45
node_modules/d/README.md
generated
vendored
45
node_modules/d/README.md
generated
vendored
@@ -1,8 +1,12 @@
|
||||
# D
|
||||
[![Build status][build-image]][build-url]
|
||||
[![Tests coverage][cov-image]][cov-url]
|
||||
[![npm version][npm-image]][npm-url]
|
||||
|
||||
# d
|
||||
|
||||
## Property descriptor factory
|
||||
|
||||
_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._
|
||||
_Originally derived from [d](https://github.com/medikoo/d) package._
|
||||
|
||||
Defining properties with descriptors is very verbose:
|
||||
|
||||
@@ -10,28 +14,18 @@ Defining properties with descriptors is very verbose:
|
||||
var Account = function () {};
|
||||
Object.defineProperties(Account.prototype, {
|
||||
deposit: {
|
||||
value: function () {
|
||||
/* ... */
|
||||
},
|
||||
value: function () { /* ... */ },
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
},
|
||||
withdraw: {
|
||||
value: function () {
|
||||
/* ... */
|
||||
},
|
||||
value: function () { /* ... */ },
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
},
|
||||
balance: {
|
||||
get: function () {
|
||||
/* ... */
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
}
|
||||
balance: { get: function () { /* ... */ }, configurable: true, enumerable: false }
|
||||
});
|
||||
```
|
||||
|
||||
@@ -42,15 +36,9 @@ var d = require("d");
|
||||
|
||||
var Account = function () {};
|
||||
Object.defineProperties(Account.prototype, {
|
||||
deposit: d(function () {
|
||||
/* ... */
|
||||
}),
|
||||
withdraw: d(function () {
|
||||
/* ... */
|
||||
}),
|
||||
balance: d.gs(function () {
|
||||
/* ... */
|
||||
})
|
||||
deposit: d(function () { /* ... */ }),
|
||||
withdraw: d(function () { /* ... */ }),
|
||||
balance: d.gs(function () { /* ... */ })
|
||||
});
|
||||
```
|
||||
|
||||
@@ -113,7 +101,7 @@ var foo = new Foo();
|
||||
foo.items.push(1, 2); // foo.items array created and defined directly on foo
|
||||
```
|
||||
|
||||
## Tests [](https://travis-ci.org/medikoo/d)
|
||||
## Tests
|
||||
|
||||
$ npm test
|
||||
|
||||
@@ -132,3 +120,10 @@ To report a security vulnerability, please use the [Tidelift security contact](h
|
||||
Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
|
||||
</sub>
|
||||
</div>
|
||||
|
||||
[build-image]: https://github.com/medikoo/d/workflows/Integrate/badge.svg
|
||||
[build-url]: https://github.com/medikoo/d/actions?query=workflow%3AIntegrate
|
||||
[cov-image]: https://img.shields.io/codecov/c/github/medikoo/d.svg
|
||||
[cov-url]: https://codecov.io/gh/medikoo/d
|
||||
[npm-image]: https://img.shields.io/npm/v/d.svg
|
||||
[npm-url]: https://www.npmjs.com/package/d
|
||||
|
||||
195
node_modules/d/package.json
generated
vendored
195
node_modules/d/package.json
generated
vendored
@@ -1,107 +1,92 @@
|
||||
{
|
||||
"_from": "d@1",
|
||||
"_id": "d@1.0.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
|
||||
"_location": "/d",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "d@1",
|
||||
"name": "d",
|
||||
"escapedName": "d",
|
||||
"rawSpec": "1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/es6-iterator",
|
||||
"/es6-symbol",
|
||||
"/es6-weak-map"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
|
||||
"_shasum": "8698095372d58dbee346ffd0c7093f99f8f9eb5a",
|
||||
"_spec": "d@1",
|
||||
"_where": "/var/www/html/jason/WeihnachtenMelly/node_modules/es6-iterator",
|
||||
"author": {
|
||||
"name": "Mariusz Nowak",
|
||||
"email": "medyk@medikoo.com",
|
||||
"url": "http://www.medikoo.com/"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/medikoo/d/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"es5-ext": "^0.10.50",
|
||||
"type": "^1.0.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Property descriptor factory",
|
||||
"devDependencies": {
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-medikoo": "^2.3.0",
|
||||
"git-list-updated": "^1.1.2",
|
||||
"husky": "^2.4.1",
|
||||
"lint-staged": "^8.2.1",
|
||||
"prettier-elastic": "^1.18.2",
|
||||
"tad": "^2.0.1"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "medikoo/es5",
|
||||
"root": true
|
||||
},
|
||||
"homepage": "https://github.com/medikoo/d#readme",
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"keywords": [
|
||||
"descriptor",
|
||||
"es",
|
||||
"ecmascript",
|
||||
"ecma",
|
||||
"property",
|
||||
"descriptors",
|
||||
"meta",
|
||||
"properties"
|
||||
],
|
||||
"license": "ISC",
|
||||
"lint-staged": {
|
||||
"*.js": [
|
||||
"eslint"
|
||||
],
|
||||
"*.{css,html,js,json,md,yaml,yml}": [
|
||||
"prettier -c"
|
||||
]
|
||||
},
|
||||
"name": "d",
|
||||
"prettier": {
|
||||
"printWidth": 100,
|
||||
"tabWidth": 4,
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.md"
|
||||
],
|
||||
"options": {
|
||||
"tabWidth": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/medikoo/d.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint --ignore-path=.gitignore .",
|
||||
"lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
|
||||
"prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
|
||||
"prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
|
||||
"test": "node node_modules/tad/bin/tad"
|
||||
},
|
||||
"version": "1.0.1"
|
||||
"name": "d",
|
||||
"version": "1.0.2",
|
||||
"description": "Property descriptor factory",
|
||||
"author": "Mariusz Nowak <medyk@medikoo.com> (http://www.medikoo.com/)",
|
||||
"keywords": [
|
||||
"descriptor",
|
||||
"es",
|
||||
"ecmascript",
|
||||
"ecma",
|
||||
"property",
|
||||
"descriptors",
|
||||
"meta",
|
||||
"properties"
|
||||
],
|
||||
"repository": "medikoo/d",
|
||||
"dependencies": {
|
||||
"es5-ext": "^0.10.64",
|
||||
"type": "^2.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-medikoo": "^4.2.0",
|
||||
"git-list-updated": "^1.2.1",
|
||||
"github-release-from-cc-changelog": "^2.3.0",
|
||||
"husky": "^4.3.8",
|
||||
"lint-staged": "~13.2.3",
|
||||
"nyc": "^15.1.0",
|
||||
"prettier-elastic": "^2.8.8",
|
||||
"tad": "^3.1.1"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.js": [
|
||||
"eslint"
|
||||
],
|
||||
"*.{css,html,js,json,md,yaml,yml}": [
|
||||
"prettier -c"
|
||||
]
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "medikoo/es5",
|
||||
"root": true
|
||||
},
|
||||
"prettier": {
|
||||
"printWidth": 100,
|
||||
"tabWidth": 4,
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.md",
|
||||
"*.yml"
|
||||
],
|
||||
"options": {
|
||||
"tabWidth": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"nyc": {
|
||||
"all": true,
|
||||
"exclude": [
|
||||
".github",
|
||||
"coverage/**",
|
||||
"test/**",
|
||||
"*.config.js"
|
||||
],
|
||||
"reporter": [
|
||||
"lcov",
|
||||
"html",
|
||||
"text-summary"
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"coverage": "nyc npm test",
|
||||
"lint": "eslint --ignore-path=.gitignore .",
|
||||
"lint:updated": "pipe-git-updated --base=main --ext=js -- eslint --ignore-pattern '!*'",
|
||||
"prettier-check": "prettier -c --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
|
||||
"prettier-check:updated": "pipe-git-updated --base=main --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
|
||||
"prettify": "prettier --write --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
|
||||
"prettify:updated": "pipe-git-updated ---base=main -ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier --write",
|
||||
"test": "tad"
|
||||
},
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
}
|
||||
}
|
||||
|
||||
11
node_modules/d/test/auto-bind.js
generated
vendored
11
node_modules/d/test/auto-bind.js
generated
vendored
@@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
var d = require("../");
|
||||
|
||||
module.exports = function (t, a) {
|
||||
var o = Object.defineProperties(
|
||||
{}, t({ bar: d(function () { return this === o; }), bar2: d(function () { return this; }) })
|
||||
);
|
||||
|
||||
a.deep([o.bar(), o.bar2()], [true, o]);
|
||||
};
|
||||
209
node_modules/d/test/index.js
generated
vendored
209
node_modules/d/test/index.js
generated
vendored
@@ -1,209 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
||||
|
||||
module.exports = function (t, a) {
|
||||
var o, c, cg, cs, ce, ceg, ces, cew, cw, e, eg, es, ew, v, vg, vs, w, df, dfg, dfs;
|
||||
|
||||
o = Object.create(Object.prototype, {
|
||||
c: t("c", (c = {})),
|
||||
cgs: t.gs("c", (cg = function () {}), (cs = function () {})),
|
||||
ce: t("ce", (ce = {})),
|
||||
cegs: t.gs("ce", (ceg = function () {}), (ces = function () {})),
|
||||
cew: t("cew", (cew = {})),
|
||||
cw: t("cw", (cw = {})),
|
||||
e: t("e", (e = {})),
|
||||
egs: t.gs("e", (eg = function () {}), (es = function () {})),
|
||||
ew: t("ew", (ew = {})),
|
||||
v: t("", (v = {})),
|
||||
vgs: t.gs("", (vg = function () {}), (vs = function () {})),
|
||||
w: t("w", (w = {})),
|
||||
|
||||
df: t((df = {})),
|
||||
dfgs: t.gs((dfg = function () {}), (dfs = function () {}))
|
||||
});
|
||||
|
||||
return {
|
||||
c: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "c");
|
||||
a(d.value, c, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, true, "Configurable");
|
||||
a(d.enumerable, false, "Enumerable");
|
||||
a(d.writable, false, "Writable");
|
||||
|
||||
d = getOwnPropertyDescriptor(o, "cgs");
|
||||
a(d.value, undefined, "GS Value");
|
||||
a(d.get, cg, "GS Get");
|
||||
a(d.set, cs, "GS Set");
|
||||
a(d.configurable, true, "GS Configurable");
|
||||
a(d.enumerable, false, "GS Enumerable");
|
||||
a(d.writable, undefined, "GS Writable");
|
||||
},
|
||||
ce: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "ce");
|
||||
a(d.value, ce, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, true, "Configurable");
|
||||
a(d.enumerable, true, "Enumerable");
|
||||
a(d.writable, false, "Writable");
|
||||
|
||||
d = getOwnPropertyDescriptor(o, "cegs");
|
||||
a(d.value, undefined, "GS Value");
|
||||
a(d.get, ceg, "GS Get");
|
||||
a(d.set, ces, "GS Set");
|
||||
a(d.configurable, true, "GS Configurable");
|
||||
a(d.enumerable, true, "GS Enumerable");
|
||||
a(d.writable, undefined, "GS Writable");
|
||||
},
|
||||
cew: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "cew");
|
||||
a(d.value, cew, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, true, "Configurable");
|
||||
a(d.enumerable, true, "Enumerable");
|
||||
a(d.writable, true, "Writable");
|
||||
},
|
||||
cw: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "cw");
|
||||
a(d.value, cw, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, true, "Configurable");
|
||||
a(d.enumerable, false, "Enumerable");
|
||||
a(d.writable, true, "Writable");
|
||||
},
|
||||
e: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "e");
|
||||
a(d.value, e, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, false, "Configurable");
|
||||
a(d.enumerable, true, "Enumerable");
|
||||
a(d.writable, false, "Writable");
|
||||
|
||||
d = getOwnPropertyDescriptor(o, "egs");
|
||||
a(d.value, undefined, "GS Value");
|
||||
a(d.get, eg, "GS Get");
|
||||
a(d.set, es, "GS Set");
|
||||
a(d.configurable, false, "GS Configurable");
|
||||
a(d.enumerable, true, "GS Enumerable");
|
||||
a(d.writable, undefined, "GS Writable");
|
||||
},
|
||||
ew: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "ew");
|
||||
a(d.value, ew, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, false, "Configurable");
|
||||
a(d.enumerable, true, "Enumerable");
|
||||
a(d.writable, true, "Writable");
|
||||
},
|
||||
v: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "v");
|
||||
a(d.value, v, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, false, "Configurable");
|
||||
a(d.enumerable, false, "Enumerable");
|
||||
a(d.writable, false, "Writable");
|
||||
|
||||
d = getOwnPropertyDescriptor(o, "vgs");
|
||||
a(d.value, undefined, "GS Value");
|
||||
a(d.get, vg, "GS Get");
|
||||
a(d.set, vs, "GS Set");
|
||||
a(d.configurable, false, "GS Configurable");
|
||||
a(d.enumerable, false, "GS Enumerable");
|
||||
a(d.writable, undefined, "GS Writable");
|
||||
},
|
||||
w: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "w");
|
||||
a(d.value, w, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, false, "Configurable");
|
||||
a(d.enumerable, false, "Enumerable");
|
||||
a(d.writable, true, "Writable");
|
||||
},
|
||||
d: function (a) {
|
||||
var d = getOwnPropertyDescriptor(o, "df");
|
||||
a(d.value, df, "Value");
|
||||
a(d.get, undefined, "Get");
|
||||
a(d.set, undefined, "Set");
|
||||
a(d.configurable, true, "Configurable");
|
||||
a(d.enumerable, false, "Enumerable");
|
||||
a(d.writable, true, "Writable");
|
||||
|
||||
d = getOwnPropertyDescriptor(o, "dfgs");
|
||||
a(d.value, undefined, "GS Value");
|
||||
a(d.get, dfg, "GS Get");
|
||||
a(d.set, dfs, "GS Set");
|
||||
a(d.configurable, true, "GS Configurable");
|
||||
a(d.enumerable, false, "GS Enumerable");
|
||||
a(d.writable, undefined, "GS Writable");
|
||||
},
|
||||
Options: {
|
||||
v: function (a) {
|
||||
var x = {}, d = t(x, { foo: true });
|
||||
a.deep(
|
||||
d,
|
||||
{ configurable: true, enumerable: false, writable: true, value: x, foo: true },
|
||||
"No descriptor"
|
||||
);
|
||||
d = t("c", "foo", { marko: "elo" });
|
||||
a.deep(
|
||||
d,
|
||||
{
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
value: "foo",
|
||||
marko: "elo"
|
||||
},
|
||||
"Descriptor"
|
||||
);
|
||||
},
|
||||
gs: function (a) {
|
||||
var gFn = function () {}, sFn = function () {}, d;
|
||||
d = t.gs(gFn, sFn, { foo: true });
|
||||
a.deep(
|
||||
d, { configurable: true, enumerable: false, get: gFn, set: sFn, foo: true },
|
||||
"No descriptor"
|
||||
);
|
||||
d = t.gs(null, sFn, { foo: true });
|
||||
a.deep(
|
||||
d,
|
||||
{ configurable: true, enumerable: false, get: undefined, set: sFn, foo: true },
|
||||
"No descriptor: Just set"
|
||||
);
|
||||
d = t.gs(gFn, { foo: true });
|
||||
a.deep(
|
||||
d,
|
||||
{ configurable: true, enumerable: false, get: gFn, set: undefined, foo: true },
|
||||
"No descriptor: Just get"
|
||||
);
|
||||
|
||||
d = t.gs("e", gFn, sFn, { bar: true });
|
||||
a.deep(
|
||||
d, { configurable: false, enumerable: true, get: gFn, set: sFn, bar: true },
|
||||
"Descriptor"
|
||||
);
|
||||
d = t.gs("e", null, sFn, { bar: true });
|
||||
a.deep(
|
||||
d,
|
||||
{ configurable: false, enumerable: true, get: undefined, set: sFn, bar: true },
|
||||
"Descriptor: Just set"
|
||||
);
|
||||
d = t.gs("e", gFn, { bar: true });
|
||||
a.deep(
|
||||
d,
|
||||
{ configurable: false, enumerable: true, get: gFn, set: undefined, bar: true },
|
||||
"Descriptor: Just get"
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
97
node_modules/d/test/lazy.js
generated
vendored
97
node_modules/d/test/lazy.js
generated
vendored
@@ -1,97 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
var d = require("../")
|
||||
, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
||||
|
||||
module.exports = function (t, a) {
|
||||
var Foo = function () {}, i = 1, o, o2, desc;
|
||||
Object.defineProperties(
|
||||
Foo.prototype,
|
||||
t({
|
||||
bar: d(function () { return ++i; }),
|
||||
bar2: d(function () { return this.bar + 23; }),
|
||||
bar3: d(function () { return this.bar2 + 34; }, { desc: "ew" }),
|
||||
bar4: d(function () { return this.bar3 + 12; }, { cacheName: "_bar4_" }),
|
||||
bar5: d(function () { return this.bar4 + 3; }, { cacheName: "_bar5_", desc: "e" })
|
||||
})
|
||||
);
|
||||
|
||||
desc = getOwnPropertyDescriptor(Foo.prototype, "bar");
|
||||
a(desc.configurable, true, "Configurable: default");
|
||||
a(desc.enumerable, false, "Enumerable: default");
|
||||
|
||||
o = new Foo();
|
||||
a.deep([o.bar, o.bar2, o.bar3, o.bar4, o.bar5], [2, 25, 59, 71, 74], "Values");
|
||||
|
||||
a.deep(
|
||||
getOwnPropertyDescriptor(o, "bar3"),
|
||||
{ configurable: false, enumerable: true, writable: true, value: 59 }, "Desc"
|
||||
);
|
||||
a(o.hasOwnProperty("bar4"), false, "Cache not exposed");
|
||||
desc = getOwnPropertyDescriptor(o, "bar5");
|
||||
a.deep(
|
||||
desc, { configurable: false, enumerable: true, get: desc.get, set: desc.set },
|
||||
"Cache & Desc: desc"
|
||||
);
|
||||
|
||||
o2 = Object.create(o);
|
||||
o2.bar = 30;
|
||||
o2.bar3 = 100;
|
||||
|
||||
a.deep(
|
||||
[o2.bar, o2.bar2, o2.bar3, o2.bar4, o2.bar5], [30, 25, 100, 112, 115], "Extension Values"
|
||||
);
|
||||
|
||||
Foo = function () {};
|
||||
Object.defineProperties(
|
||||
Foo.prototype,
|
||||
t({
|
||||
test: d("w", function () { return "raz"; }),
|
||||
test2: d("", function () { return "raz"; }, { desc: "w" }),
|
||||
test3: d("", function () { return "raz"; }, { cacheName: "__test3__", desc: "w" }),
|
||||
test4: d("w", "bar")
|
||||
})
|
||||
);
|
||||
|
||||
o = new Foo();
|
||||
o.test = "marko";
|
||||
a.deep(
|
||||
getOwnPropertyDescriptor(o, "test"),
|
||||
{ configurable: false, enumerable: false, writable: true, value: "marko" }, "Set before get"
|
||||
);
|
||||
o.test2 = "marko2";
|
||||
a.deep(
|
||||
getOwnPropertyDescriptor(o, "test2"),
|
||||
{ configurable: false, enumerable: false, writable: true, value: "marko2" },
|
||||
"Set before get: Custom desc"
|
||||
);
|
||||
o.test3 = "marko3";
|
||||
a.deep(
|
||||
getOwnPropertyDescriptor(o, "__test3__"),
|
||||
{ configurable: false, enumerable: false, writable: true, value: "marko3" },
|
||||
"Set before get: Custom cache name"
|
||||
);
|
||||
a(o.test4, "bar", "Resolve by value");
|
||||
|
||||
a.h1("Flat");
|
||||
Object.defineProperties(
|
||||
Foo.prototype,
|
||||
t({
|
||||
flat: d(function () { return "foo"; }, { flat: true }),
|
||||
flat2: d(function () { return "bar"; }, { flat: true })
|
||||
})
|
||||
);
|
||||
|
||||
a.h2("Instance");
|
||||
a(o.flat, "foo", "Value");
|
||||
a(o.hasOwnProperty("flat"), false, "Instance");
|
||||
a(Foo.prototype.flat, "foo", "Prototype");
|
||||
|
||||
a.h2("Direct");
|
||||
a(Foo.prototype.flat2, "bar");
|
||||
|
||||
a.h2("Reset direct");
|
||||
Object.defineProperties(Foo.prototype, t({ testResetDirect: d(false) }));
|
||||
|
||||
a.throws(function () { Foo.prototype.testResetDirect = false; }, TypeError);
|
||||
};
|
||||
Reference in New Issue
Block a user