Skip to content

Commit

Permalink
RegExp#unicode implementation and isUnicode
Browse files Browse the repository at this point in the history
  • Loading branch information
medikoo committed Feb 19, 2014
1 parent 3f577f5 commit f373948
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 5 deletions.
11 changes: 6 additions & 5 deletions reg-exp/#/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
'use strict';

module.exports = {
isSticky: require('./is-sticky'),
match: require('./match'),
replace: require('./replace'),
search: require('./search'),
split: require('./split')
isSticky: require('./is-sticky'),
isUnicode: require('./is-unicode'),
match: require('./match'),
replace: require('./replace'),
search: require('./search'),
split: require('./split')
};
9 changes: 9 additions & 0 deletions reg-exp/#/is-unicode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use strict';

var validRegExp = require('../valid-reg-exp')

, re = /\/[a-xz]*u[a-xz]*$/;

module.exports = function () {
return Boolean(String(validRegExp(this)).match(re));
};
8 changes: 8 additions & 0 deletions reg-exp/#/unicode/implement.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'use strict';

var isUnicode = require('../is-unicode');

if (!require('./is-implemented')()) {
Object.defineProperty(RegExp.prototype, 'unicode', { configurable: true,
enumerable: false, get: isUnicode });
}
5 changes: 5 additions & 0 deletions reg-exp/#/unicode/is-implemented.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

module.exports = function () {
return RegExp.prototype.unicode === false;
};
1 change: 1 addition & 0 deletions test/reg-exp/#/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ var indexTest = require('tad/lib/utils/index-test')
module.exports = function (t, a, d) {
indexTest(indexTest.readDir(path).aside(function (data) {
delete data.sticky;
delete data.unicode;
}))(t, a, d);
};
10 changes: 10 additions & 0 deletions test/reg-exp/#/is-unicode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
'use strict';

module.exports = function (t, a) {
var re;
a(t.call(/raz/), false, "Normal");
a(t.call(/raz/g), false, "Global");
try { re = new RegExp('raz', 'u'); } catch (ignore) {}
if (!re) return;
a(t.call(re), true, "Unicode");
};
5 changes: 5 additions & 0 deletions test/reg-exp/#/unicode/implement.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

var isImplemented = require('../../../../reg-exp/#/unicode/is-implemented');

module.exports = function (a) { a(isImplemented(), true); };
3 changes: 3 additions & 0 deletions test/reg-exp/#/unicode/is-implemented.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
'use strict';

module.exports = function (t, a) { a(typeof t(), 'boolean'); };

0 comments on commit f373948

Please sign in to comment.