From 17720675ca60902c5d94c4048559859651042b02 Mon Sep 17 00:00:00 2001 From: Tan Li Hau Date: Sun, 26 May 2019 10:01:28 +0800 Subject: [PATCH] test case for loose private-loose --- .../destructuring-array-pattern-1/exec.js | 17 +++++++++++++++++ .../destructuring-array-pattern-1/input.js | 8 ++++++++ .../destructuring-array-pattern-1/output.js | 14 ++++++++++++++ .../destructuring-array-pattern-2/exec.js | 15 +++++++++++++++ .../destructuring-array-pattern-2/input.js | 7 +++++++ .../destructuring-array-pattern-2/output.js | 13 +++++++++++++ .../destructuring-array-pattern/exec.js | 14 ++++++++++++++ .../destructuring-array-pattern/input.js | 7 +++++++ .../destructuring-array-pattern/output.js | 13 +++++++++++++ .../destructuring-object-pattern-1/exec.js | 17 +++++++++++++++++ .../destructuring-object-pattern-1/input.js | 8 ++++++++ .../destructuring-object-pattern-1/output.js | 18 ++++++++++++++++++ .../destructuring-object-pattern-2/exec.js | 15 +++++++++++++++ .../destructuring-object-pattern-2/input.js | 7 +++++++ .../destructuring-object-pattern-2/output.js | 16 ++++++++++++++++ .../destructuring-object-pattern/exec.js | 14 ++++++++++++++ .../destructuring-object-pattern/input.js | 7 +++++++ .../destructuring-object-pattern/output.js | 15 +++++++++++++++ 18 files changed, 225 insertions(+) create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/output.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/output.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/output.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/output.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/output.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/exec.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/input.js create mode 100644 packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/output.js diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/exec.js new file mode 100644 index 000000000000..e9b210909117 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/exec.js @@ -0,0 +1,17 @@ +class Foo { + #client + + constructor(props) { + this.#client = 1; + ;([this.x = this.#client, this.#client, this.y = this.#client] = props); + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo([undefined, 'bar']); +expect(foo.getClient()).toBe('bar'); +expect(foo.x).toBe(1); +expect(foo.y).toBe('bar'); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/input.js new file mode 100644 index 000000000000..37fd45b2c58d --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/input.js @@ -0,0 +1,8 @@ +class Foo { + #client + + constructor(props) { + this.#client = 1; + ;([this.x = this.#client, this.#client, this.y = this.#client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/output.js new file mode 100644 index 000000000000..11b250ca1547 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-1/output.js @@ -0,0 +1,14 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + babelHelpers.classPrivateFieldLooseBase(this, _client)[_client] = 1; + ; + [this.x = babelHelpers.classPrivateFieldLooseBase(this, _client)[_client], babelHelpers.classPrivateFieldLooseBase(this, _client)[_client], this.y = babelHelpers.classPrivateFieldLooseBase(this, _client)[_client]] = props; +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/exec.js new file mode 100644 index 000000000000..c502fd3c3dc0 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/exec.js @@ -0,0 +1,15 @@ +class Foo { + #client + + constructor(props) { + let x; + ;([x, ...this.#client] = props); + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo(['foo', 'bar', 'baz', 'quu']); +expect(foo.getClient()).toEqual(['bar', 'baz', 'quu']); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/input.js new file mode 100644 index 000000000000..01e9cb9d6178 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/input.js @@ -0,0 +1,7 @@ +class Foo { + #client + + constructor(props) { + ;([x, ...this.#client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/output.js new file mode 100644 index 000000000000..c3bf863b5b4e --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern-2/output.js @@ -0,0 +1,13 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + ; + [x, ...babelHelpers.classPrivateFieldLooseBase(this, _client)[_client]] = props; +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/exec.js new file mode 100644 index 000000000000..33310d6da0ca --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/exec.js @@ -0,0 +1,14 @@ +class Foo { + #client + + constructor(props) { + ;([this.#client] = props); + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo(['bar']); +expect(foo.getClient()).toBe('bar'); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/input.js new file mode 100644 index 000000000000..ee428b3c1a66 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/input.js @@ -0,0 +1,7 @@ +class Foo { + #client + + constructor(props) { + ;([this.#client] = props); + } +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/output.js new file mode 100644 index 000000000000..2511c128b05d --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-array-pattern/output.js @@ -0,0 +1,13 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + ; + [babelHelpers.classPrivateFieldLooseBase(this, _client)[_client]] = props; +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/exec.js new file mode 100644 index 000000000000..64797efce7c9 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/exec.js @@ -0,0 +1,17 @@ +class Foo { + #client + + constructor(props) { + this.#client = 'foo'; + ;({ x: this.x = this.#client, y: this.#client, z: this.z = this.#client } = props) + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo({ y: 'bar' }); +expect(foo.getClient()).toBe('bar'); +expect(foo.x).toBe('foo'); +expect(foo.z).toBe('bar'); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/input.js new file mode 100644 index 000000000000..0917839f762f --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/input.js @@ -0,0 +1,8 @@ +class Foo { + #client + + constructor(props) { + this.#client = 'foo'; + ;({ x: this.x = this.#client, y: this.#client, z: this.z = this.#client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/output.js new file mode 100644 index 000000000000..8bda80786821 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-1/output.js @@ -0,0 +1,18 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + babelHelpers.classPrivateFieldLooseBase(this, _client)[_client] = 'foo'; + ; + ({ + x: this.x = babelHelpers.classPrivateFieldLooseBase(this, _client)[_client], + y: babelHelpers.classPrivateFieldLooseBase(this, _client)[_client], + z: this.z = babelHelpers.classPrivateFieldLooseBase(this, _client)[_client] + } = props); +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/exec.js new file mode 100644 index 000000000000..944db11a8f3e --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/exec.js @@ -0,0 +1,15 @@ +class Foo { + #client + + constructor(props) { + let x; + ;({ x, ...this.#client } = props) + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo({ x: 'foo', y: 'bar', z: 'baz' }); +expect(foo.getClient()).toEqual({ y: 'bar', z: 'baz' }); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/input.js new file mode 100644 index 000000000000..12f011c72f93 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/input.js @@ -0,0 +1,7 @@ +class Foo { + #client + + constructor(props) { + ;({ x, ...this.#client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/output.js new file mode 100644 index 000000000000..353eca713311 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern-2/output.js @@ -0,0 +1,16 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + ; + ({ + x, + ...babelHelpers.classPrivateFieldLooseBase(this, _client)[_client] + } = props); +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client"); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/exec.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/exec.js new file mode 100644 index 000000000000..97a5263bdfb8 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/exec.js @@ -0,0 +1,14 @@ +class Foo { + #client + + constructor(props) { + ;({ client: this.#client } = props) + } + + getClient() { + return this.#client; + } +} + +const foo = new Foo({ client: 'bar' }); +expect(foo.getClient()).toBe('bar'); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/input.js new file mode 100644 index 000000000000..281626d43608 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/input.js @@ -0,0 +1,7 @@ +class Foo { + #client + + constructor(props) { + ;({ client: this.#client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/output.js new file mode 100644 index 000000000000..7a65e44ae0d3 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/destructuring-object-pattern/output.js @@ -0,0 +1,15 @@ +var Foo = function Foo(props) { + "use strict"; + + babelHelpers.classCallCheck(this, Foo); + Object.defineProperty(this, _client, { + writable: true, + value: void 0 + }); + ; + ({ + client: babelHelpers.classPrivateFieldLooseBase(this, _client)[_client] + } = props); +}; + +var _client = babelHelpers.classPrivateFieldLooseKey("client");