Skip to content

Commit c7050a4

Browse files
committed
Use NUMBER() as the placeable fallback
1 parent 055b222 commit c7050a4

File tree

3 files changed

+14
-18
lines changed

3 files changed

+14
-18
lines changed

fluent/src/builtins.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function values(opts) {
2828
export
2929
function NUMBER([arg], opts) {
3030
if (arg instanceof FluentNone) {
31-
return new FluentNone("NUMBER()");
31+
return new FluentNone(`NUMBER(${arg.valueOf()})`);
3232
}
3333

3434
if (arg instanceof FluentNumber) {
@@ -41,7 +41,7 @@ function NUMBER([arg], opts) {
4141
export
4242
function DATETIME([arg], opts) {
4343
if (arg instanceof FluentNone) {
44-
return new FluentNone("DATETIME()");
44+
return new FluentNone(`DATETIME(${arg.valueOf()})`);
4545
}
4646

4747
if (arg instanceof FluentDateTime) {

fluent/src/types.js

-4
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ export class FluentType {
4545
}
4646

4747
export class FluentNone extends FluentType {
48-
valueOf() {
49-
return null;
50-
}
51-
5248
toString() {
5349
return `{${this.value || "???"}}`;
5450
}

fluent/test/functions_builtin_test.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ suite('Built-in functions', function() {
2727

2828
errors = [];
2929
msg = bundle.getMessage('num-decimal');
30-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER()}');
30+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER($arg)}');
3131
assert.strictEqual(errors.length, 1);
3232
assert.ok(errors[0] instanceof ReferenceError);
3333
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
3434

3535
errors = [];
3636
msg = bundle.getMessage('num-percent');
37-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER()}');
37+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER($arg)}');
3838
assert.strictEqual(errors.length, 1);
3939
assert.ok(errors[0] instanceof ReferenceError);
4040
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
4141

4242
errors = [];
4343
msg = bundle.getMessage('num-bad-opt');
44-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER()}');
44+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{NUMBER($arg)}');
4545
assert.strictEqual(errors.length, 1);
4646
assert.ok(errors[0] instanceof ReferenceError);
4747
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
@@ -124,21 +124,21 @@ suite('Built-in functions', function() {
124124

125125
errors = [];
126126
msg = bundle.getMessage('num-decimal');
127-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER()}');
127+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER($arg)}');
128128
assert.strictEqual(errors.length, 1);
129129
assert.ok(errors[0] instanceof TypeError);
130130
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");
131131

132132
errors = [];
133133
msg = bundle.getMessage('num-percent');
134-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER()}');
134+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER($arg)}');
135135
assert.strictEqual(errors.length, 1);
136136
assert.ok(errors[0] instanceof TypeError);
137137
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");
138138

139139
errors = [];
140140
msg = bundle.getMessage('num-bad-opt');
141-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER()}');
141+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{NUMBER($arg)}');
142142
assert.strictEqual(errors.length, 1);
143143
assert.ok(errors[0] instanceof TypeError);
144144
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");
@@ -160,21 +160,21 @@ suite('Built-in functions', function() {
160160

161161
errors = [];
162162
msg = bundle.getMessage('dt-default');
163-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME()}');
163+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME($arg)}');
164164
assert.strictEqual(errors.length, 1);
165165
assert.ok(errors[0] instanceof ReferenceError);
166166
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
167167

168168
errors = [];
169169
msg = bundle.getMessage('dt-month');
170-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME()}');
170+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME($arg)}');
171171
assert.strictEqual(errors.length, 1);
172172
assert.ok(errors[0] instanceof ReferenceError);
173173
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
174174

175175
errors = [];
176176
msg = bundle.getMessage('dt-bad-opt');
177-
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME()}');
177+
assert.strictEqual(bundle.formatPattern(msg.value, {}, errors), '{DATETIME($arg)}');
178178
assert.strictEqual(errors.length, 1);
179179
assert.ok(errors[0] instanceof ReferenceError);
180180
assert.strictEqual(errors[0].message, "Unknown variable: $arg");
@@ -267,21 +267,21 @@ suite('Built-in functions', function() {
267267

268268
errors = [];
269269
msg = bundle.getMessage('dt-default');
270-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME()}');
270+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME($arg)}');
271271
assert.strictEqual(errors.length, 1);
272272
assert.ok(errors[0] instanceof TypeError);
273273
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");
274274

275275
errors = [];
276276
msg = bundle.getMessage('dt-month');
277-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME()}');
277+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME($arg)}');
278278
assert.strictEqual(errors.length, 1);
279279
assert.ok(errors[0] instanceof TypeError);
280280
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");
281281

282282
errors = [];
283283
msg = bundle.getMessage('dt-bad-opt');
284-
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME()}');
284+
assert.strictEqual(bundle.formatPattern(msg.value, args, errors), '{DATETIME($arg)}');
285285
assert.strictEqual(errors.length, 1);
286286
assert.ok(errors[0] instanceof TypeError);
287287
assert.strictEqual(errors[0].message, "Variable type not supported: $arg, object");

0 commit comments

Comments
 (0)