Index: src/i18n.js |
diff --git a/src/i18n.js b/src/i18n.js |
index 1028bbb07b3d70706290848f14110d4bee8d7dd5..194080bce555b04bf4ce8b3970c6d747ea75d8f2 100644 |
--- a/src/i18n.js |
+++ b/src/i18n.js |
@@ -1995,27 +1995,29 @@ OverrideFunction(GlobalString.prototype, 'localeCompare', function(that) { |
* If the form is not one of "NFC", "NFD", "NFKC", or "NFKD", then throw |
* a RangeError Exception. |
*/ |
-OverrideFunction(GlobalString.prototype, 'normalize', function(form) { |
- if (%_IsConstructCall()) { |
- throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); |
- } |
- CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize"); |
+function StringNormalizeJS(form) { |
+ if (%_IsConstructCall()) { |
+ throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); |
+ } |
- form = IS_UNDEFINED(form) ? 'NFC' : form; |
+ CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize"); |
- var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD']; |
+ form = IS_UNDEFINED(form) ? 'NFC' : form; |
- var normalizationForm = |
- %_CallFunction(NORMALIZATION_FORMS, form, ArrayIndexOf); |
- if (normalizationForm === -1) { |
- throw MakeRangeError(kNormalizationForm, |
- %_CallFunction(NORMALIZATION_FORMS, ', ', ArrayJoin)); |
- } |
+ var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD']; |
- return %StringNormalize(this, normalizationForm); |
+ var normalizationForm = |
+ %_CallFunction(NORMALIZATION_FORMS, form, ArrayIndexOf); |
+ if (normalizationForm === -1) { |
+ throw MakeRangeError(kNormalizationForm, |
+ %_CallFunction(NORMALIZATION_FORMS, ', ', ArrayJoin)); |
} |
-); |
+ |
+ return %StringNormalize(this, normalizationForm); |
+} |
+%FunctionSetLength(StringNormalizeJS, 0); |
rossberg
2015/08/05 14:23:05
I'd prefer avoiding the runtime call and instead d
mathias
2015/08/05 14:28:11
Done.
|
+OverrideFunction(GlobalString.prototype, 'normalize', StringNormalizeJS); |
/** |