123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
-
- var root = require('lodash._root');
-
-
- var INFINITY = 1 / 0;
-
-
- var symbolTag = '[object Symbol]';
-
-
- var reUnescapedHtml = /[&<>"'`]/g,
- reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
-
-
- var htmlEscapes = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '`': '`'
- };
-
-
- function escapeHtmlChar(chr) {
- return htmlEscapes[chr];
- }
-
-
- var objectProto = Object.prototype;
-
-
- var objectToString = objectProto.toString;
-
-
- var Symbol = root.Symbol;
-
-
- var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = Symbol ? symbolProto.toString : undefined;
-
-
- function isObjectLike(value) {
- return !!value && typeof value == 'object';
- }
-
-
- function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
- }
-
-
- function toString(value) {
-
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return Symbol ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
-
-
- function escape(string) {
- string = toString(string);
- return (string && reHasUnescapedHtml.test(string))
- ? string.replace(reUnescapedHtml, escapeHtmlChar)
- : string;
- }
-
- module.exports = escape;
|