Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/json.js

Issue 1302533002: Native context: debug.js does not load from js builtins object anymore. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: make importing requirement more explicit Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/i18n.js ('k') | src/macros.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 "use strict"; 7 "use strict";
8 8
9 %CheckIsBootstrapping(); 9 %CheckIsBootstrapping();
10 10
11 // ------------------------------------------------------------------- 11 // -------------------------------------------------------------------
12 // Imports 12 // Imports
13 13
14 var GlobalJSON = global.JSON; 14 var GlobalJSON = global.JSON;
15 var InternalArray = utils.InternalArray; 15 var InternalArray = utils.InternalArray;
16
17 var MathMax; 16 var MathMax;
18 var MathMin; 17 var MathMin;
19 var ObjectHasOwnProperty; 18 var ObjectHasOwnProperty;
19 var ToNumber;
20 var ToString;
20 21
21 utils.Import(function(from) { 22 utils.Import(function(from) {
22 MathMax = from.MathMax; 23 MathMax = from.MathMax;
23 MathMin = from.MathMin; 24 MathMin = from.MathMin;
24 ObjectHasOwnProperty = from.ObjectHasOwnProperty; 25 ObjectHasOwnProperty = from.ObjectHasOwnProperty;
26 ToNumber = from.ToNumber;
27 ToString = from.ToString;
25 }); 28 });
26 29
27 // ------------------------------------------------------------------- 30 // -------------------------------------------------------------------
28 31
29 function Revive(holder, name, reviver) { 32 function Revive(holder, name, reviver) {
30 var val = holder[name]; 33 var val = holder[name];
31 if (IS_OBJECT(val)) { 34 if (IS_OBJECT(val)) {
32 if (IS_ARRAY(val)) { 35 if (IS_ARRAY(val)) {
33 var length = val.length; 36 var length = val.length;
34 for (var i = 0; i < length; i++) { 37 for (var i = 0; i < length; i++) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 return JSON_NUMBER_TO_STRING(value); 158 return JSON_NUMBER_TO_STRING(value);
156 } else if (IS_BOOLEAN(value)) { 159 } else if (IS_BOOLEAN(value)) {
157 return value ? "true" : "false"; 160 return value ? "true" : "false";
158 } else if (IS_NULL(value)) { 161 } else if (IS_NULL(value)) {
159 return "null"; 162 return "null";
160 } else if (IS_SPEC_OBJECT(value) && !(typeof value == "function")) { 163 } else if (IS_SPEC_OBJECT(value) && !(typeof value == "function")) {
161 // Non-callable object. If it's a primitive wrapper, it must be unwrapped. 164 // Non-callable object. If it's a primitive wrapper, it must be unwrapped.
162 if (IS_ARRAY(value)) { 165 if (IS_ARRAY(value)) {
163 return SerializeArray(value, replacer, stack, indent, gap); 166 return SerializeArray(value, replacer, stack, indent, gap);
164 } else if (IS_NUMBER_WRAPPER(value)) { 167 } else if (IS_NUMBER_WRAPPER(value)) {
165 value = $toNumber(value); 168 value = ToNumber(value);
166 return JSON_NUMBER_TO_STRING(value); 169 return JSON_NUMBER_TO_STRING(value);
167 } else if (IS_STRING_WRAPPER(value)) { 170 } else if (IS_STRING_WRAPPER(value)) {
168 return %QuoteJSONString($toString(value)); 171 return %QuoteJSONString(ToString(value));
169 } else if (IS_BOOLEAN_WRAPPER(value)) { 172 } else if (IS_BOOLEAN_WRAPPER(value)) {
170 return %_ValueOf(value) ? "true" : "false"; 173 return %_ValueOf(value) ? "true" : "false";
171 } else { 174 } else {
172 return SerializeObject(value, replacer, stack, indent, gap); 175 return SerializeObject(value, replacer, stack, indent, gap);
173 } 176 }
174 } 177 }
175 // Undefined or a callable object. 178 // Undefined or a callable object.
176 return UNDEFINED; 179 return UNDEFINED;
177 } 180 }
178 181
179 182
180 function JSONStringify(value, replacer, space) { 183 function JSONStringify(value, replacer, space) {
181 if (%_ArgumentsLength() == 1) { 184 if (%_ArgumentsLength() == 1) {
182 return %BasicJSONStringify(value); 185 return %BasicJSONStringify(value);
183 } 186 }
184 if (IS_ARRAY(replacer)) { 187 if (IS_ARRAY(replacer)) {
185 // Deduplicate replacer array items. 188 // Deduplicate replacer array items.
186 var property_list = new InternalArray(); 189 var property_list = new InternalArray();
187 var seen_properties = { __proto__: null }; 190 var seen_properties = { __proto__: null };
188 var length = replacer.length; 191 var length = replacer.length;
189 for (var i = 0; i < length; i++) { 192 for (var i = 0; i < length; i++) {
190 var v = replacer[i]; 193 var v = replacer[i];
191 var item; 194 var item;
192 if (IS_STRING(v)) { 195 if (IS_STRING(v)) {
193 item = v; 196 item = v;
194 } else if (IS_NUMBER(v)) { 197 } else if (IS_NUMBER(v)) {
195 item = %_NumberToString(v); 198 item = %_NumberToString(v);
196 } else if (IS_STRING_WRAPPER(v) || IS_NUMBER_WRAPPER(v)) { 199 } else if (IS_STRING_WRAPPER(v) || IS_NUMBER_WRAPPER(v)) {
197 item = $toString(v); 200 item = ToString(v);
198 } else { 201 } else {
199 continue; 202 continue;
200 } 203 }
201 if (!seen_properties[item]) { 204 if (!seen_properties[item]) {
202 property_list.push(item); 205 property_list.push(item);
203 seen_properties[item] = true; 206 seen_properties[item] = true;
204 } 207 }
205 } 208 }
206 replacer = property_list; 209 replacer = property_list;
207 } 210 }
208 if (IS_OBJECT(space)) { 211 if (IS_OBJECT(space)) {
209 // Unwrap 'space' if it is wrapped 212 // Unwrap 'space' if it is wrapped
210 if (IS_NUMBER_WRAPPER(space)) { 213 if (IS_NUMBER_WRAPPER(space)) {
211 space = $toNumber(space); 214 space = ToNumber(space);
212 } else if (IS_STRING_WRAPPER(space)) { 215 } else if (IS_STRING_WRAPPER(space)) {
213 space = $toString(space); 216 space = ToString(space);
214 } 217 }
215 } 218 }
216 var gap; 219 var gap;
217 if (IS_NUMBER(space)) { 220 if (IS_NUMBER(space)) {
218 space = MathMax(0, MathMin($toInteger(space), 10)); 221 space = MathMax(0, MathMin($toInteger(space), 10));
219 gap = %_SubString(" ", 0, space); 222 gap = %_SubString(" ", 0, space);
220 } else if (IS_STRING(space)) { 223 } else if (IS_STRING(space)) {
221 if (space.length > 10) { 224 if (space.length > 10) {
222 gap = %_SubString(space, 0, 10); 225 gap = %_SubString(space, 0, 10);
223 } else { 226 } else {
(...skipping 23 matching lines...) Expand all
247 holder[key] = object; 250 holder[key] = object;
248 // No need to pass the actual holder since there is no replacer function. 251 // No need to pass the actual holder since there is no replacer function.
249 return JSONSerialize(key, holder, UNDEFINED, new InternalArray(), "", ""); 252 return JSONSerialize(key, holder, UNDEFINED, new InternalArray(), "", "");
250 } 253 }
251 254
252 utils.ExportToRuntime(function(to) { 255 utils.ExportToRuntime(function(to) {
253 to.JsonSerializeAdapter = JsonSerializeAdapter; 256 to.JsonSerializeAdapter = JsonSerializeAdapter;
254 }); 257 });
255 258
256 }) 259 })
OLDNEW
« no previous file with comments | « src/i18n.js ('k') | src/macros.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698