Ember.js - Les tableaux virtuels
HTML
<script src="https://raw.github.com/emberjs/starter-kit/master/js/libs/handlebars-1.0.0.beta.6.js"></script>
<script src="https://github.com/downloads/emberjs/ember.js/ember-1.0.pre.min.js"></script>
<div id="my-app"></div>
JavaScript
function var_export(mixed_expression, bool_return) {
// http://kevin.vanzonneveld.net
// + original by: Philip Peterson
// + improved by: johnrembo
// + improved by: Brett Zamir (http://brett-zamir.me)
// + input by: Brian Tafoya (http://www.premasolutions.com/)
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// + input by: Hans Henrik (http://hanshenrik.tk/)
// - depends on: echo
// * example 1: var_export(null);
// * returns 1: null
// * example 2: var_export({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}, true);
// * returns 2: "array (\n 0 => 'Kevin',\n 1 => 'van',\n 2 => 'Zonneveld'\n)"
// * example 3: data = 'Kevin';
// * example 3: var_export(data, true);
// * returns 3: "'Kevin'"
var retstr = '',
iret = '',
value,
cnt = 0,
x = [],
i = 0,
funcParts = [],
// We use the last argument (not part of PHP) to pass in
// our indentation level
idtLevel = arguments[2] || 2,
innerIndent = '',
outerIndent = '',
getFuncName = function (fn) {
var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
if (!name) {
return '(Anonymous)';
}
return name[1];
},
_makeIndent = function (idtLevel) {
return (new Array(idtLevel + 1)).join(' ');
},
__getType = function (inp) {
var i = 0, match, types, cons, type = typeof inp;
if (type === 'object' && inp.constructor &&
getFuncName(inp.constructor) === 'PHPJS_Resource') {
return 'resource';
}
if (type === 'function') {
return 'function';
}
if (type === 'object' && !inp) {
return 'null'; // Should this be just null?
}
if (type === "object") {
if (!inp.constructor) {
return 'object';
}
cons = inp.constructor.toString();
match = cons.match(/(\w+)\(/);
if (match) {
cons =...