OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 (function(global, utils) { | 5 (function(global, utils) { |
6 | 6 |
7 %CheckIsBootstrapping(); | 7 %CheckIsBootstrapping(); |
8 | 8 |
9 // ------------------------------------------------------------------- | 9 // ------------------------------------------------------------------- |
10 // Imports | 10 // Imports |
11 | 11 |
12 var ArrayIndexOf; | |
13 var ArrayJoin; | 12 var ArrayJoin; |
14 var GlobalRegExp = global.RegExp; | 13 var GlobalRegExp = global.RegExp; |
15 var GlobalString = global.String; | 14 var GlobalString = global.String; |
16 var IsRegExp; | 15 var IsRegExp; |
17 var MaxSimple; | 16 var MaxSimple; |
18 var MinSimple; | 17 var MinSimple; |
19 var RegExpInitialize; | 18 var RegExpInitialize; |
20 var matchSymbol = utils.ImportNow("match_symbol"); | 19 var matchSymbol = utils.ImportNow("match_symbol"); |
21 var replaceSymbol = utils.ImportNow("replace_symbol"); | 20 var replaceSymbol = utils.ImportNow("replace_symbol"); |
22 var searchSymbol = utils.ImportNow("search_symbol"); | 21 var searchSymbol = utils.ImportNow("search_symbol"); |
23 var splitSymbol = utils.ImportNow("split_symbol"); | 22 var splitSymbol = utils.ImportNow("split_symbol"); |
24 | 23 |
25 utils.Import(function(from) { | 24 utils.Import(function(from) { |
26 ArrayIndexOf = from.ArrayIndexOf; | |
27 ArrayJoin = from.ArrayJoin; | 25 ArrayJoin = from.ArrayJoin; |
28 IsRegExp = from.IsRegExp; | 26 IsRegExp = from.IsRegExp; |
29 MaxSimple = from.MaxSimple; | 27 MaxSimple = from.MaxSimple; |
30 MinSimple = from.MinSimple; | 28 MinSimple = from.MinSimple; |
31 RegExpInitialize = from.RegExpInitialize; | 29 RegExpInitialize = from.RegExpInitialize; |
32 }); | 30 }); |
33 | 31 |
34 //------------------------------------------------------------------- | 32 //------------------------------------------------------------------- |
35 | 33 |
36 // ECMA-262, section 15.5.4.6 | 34 // ECMA-262, section 15.5.4.6 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 // For now we do nothing, as proper normalization requires big tables. | 123 // For now we do nothing, as proper normalization requires big tables. |
126 // If Intl is enabled, then i18n.js will override it and provide the the | 124 // If Intl is enabled, then i18n.js will override it and provide the the |
127 // proper functionality. | 125 // proper functionality. |
128 function StringNormalize(formArg) { // length == 0 | 126 function StringNormalize(formArg) { // length == 0 |
129 CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize"); | 127 CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize"); |
130 var s = TO_STRING(this); | 128 var s = TO_STRING(this); |
131 | 129 |
132 var form = IS_UNDEFINED(formArg) ? 'NFC' : TO_STRING(formArg); | 130 var form = IS_UNDEFINED(formArg) ? 'NFC' : TO_STRING(formArg); |
133 | 131 |
134 var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD']; | 132 var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD']; |
135 var normalizationForm = %_Call(ArrayIndexOf, NORMALIZATION_FORMS, form); | 133 var normalizationForm = %ArrayIndexOf(NORMALIZATION_FORMS, form, 0); |
136 if (normalizationForm === -1) { | 134 if (normalizationForm === -1) { |
137 throw %make_range_error(kNormalizationForm, | 135 throw %make_range_error(kNormalizationForm, |
138 %_Call(ArrayJoin, NORMALIZATION_FORMS, ', ')); | 136 %_Call(ArrayJoin, NORMALIZATION_FORMS, ', ')); |
139 } | 137 } |
140 | 138 |
141 return s; | 139 return s; |
142 } | 140 } |
143 | 141 |
144 %FunctionSetLength(StringNormalize, 0); | 142 %FunctionSetLength(StringNormalize, 0); |
145 | 143 |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 to.StringLastIndexOf = StringLastIndexOf; | 778 to.StringLastIndexOf = StringLastIndexOf; |
781 to.StringMatch = StringMatchJS; | 779 to.StringMatch = StringMatchJS; |
782 to.StringReplace = StringReplace; | 780 to.StringReplace = StringReplace; |
783 to.StringSlice = StringSlice; | 781 to.StringSlice = StringSlice; |
784 to.StringSplit = StringSplitJS; | 782 to.StringSplit = StringSplitJS; |
785 to.StringSubstr = StringSubstr; | 783 to.StringSubstr = StringSubstr; |
786 to.StringSubstring = StringSubstring; | 784 to.StringSubstring = StringSubstring; |
787 }); | 785 }); |
788 | 786 |
789 }) | 787 }) |
OLD | NEW |