Buckets:
arudradey/ml-cpu-storage / emsdk /upstream /emscripten /node_modules /terser /lib /compress /native-objects.js
| /*********************************************************************** | |
| A JavaScript tokenizer / parser / beautifier / compressor. | |
| https://github.com/mishoo/UglifyJS2 | |
| -------------------------------- (C) --------------------------------- | |
| Author: Mihai Bazon | |
| <mihai.bazon@gmail.com> | |
| http://mihai.bazon.net/blog | |
| Distributed under the BSD license: | |
| Copyright 2012 (c) Mihai Bazon <mihai.bazon@gmail.com> | |
| Redistribution and use in source and binary forms, with or without | |
| modification, are permitted provided that the following conditions | |
| are met: | |
| * Redistributions of source code must retain the above | |
| copyright notice, this list of conditions and the following | |
| disclaimer. | |
| * Redistributions in binary form must reproduce the above | |
| copyright notice, this list of conditions and the following | |
| disclaimer in the documentation and/or other materials | |
| provided with the distribution. | |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY | |
| EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
| PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE | |
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | |
| OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
| PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
| PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR | |
| TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF | |
| THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| SUCH DAMAGE. | |
| ***********************************************************************/ | |
| import { makePredicate } from "../utils/index.js"; | |
| // Lists of native methods, useful for `unsafe` option which assumes they exist. | |
| // Note: Lots of methods and functions are missing here, in case they aren't pure | |
| // or not available in all JS environments. | |
| function make_nested_lookup(obj) { | |
| const out = new Map(); | |
| for (var key of Object.keys(obj)) { | |
| out.set(key, makePredicate(obj[key])); | |
| } | |
| const does_have = (global_name, fname) => { | |
| const inner_map = out.get(global_name); | |
| return inner_map != null && inner_map.has(fname); | |
| }; | |
| return does_have; | |
| } | |
| // Objects which are safe to access without throwing or causing a side effect. | |
| // Usually we'd check the `unsafe` option first but these are way too common for that | |
| export const pure_prop_access_globals = new Set([ | |
| "Number", | |
| "String", | |
| "Array", | |
| "Object", | |
| "Function", | |
| "Promise", | |
| ]); | |
| const object_methods = [ | |
| "constructor", | |
| "toString", | |
| "valueOf", | |
| ]; | |
| export const is_pure_native_method = make_nested_lookup({ | |
| Array: [ | |
| "at", | |
| "flat", | |
| "includes", | |
| "indexOf", | |
| "join", | |
| "lastIndexOf", | |
| "slice", | |
| ...object_methods, | |
| ], | |
| Boolean: object_methods, | |
| Function: object_methods, | |
| Number: [ | |
| "toExponential", | |
| "toFixed", | |
| "toPrecision", | |
| ...object_methods, | |
| ], | |
| Object: object_methods, | |
| RegExp: [ | |
| "test", | |
| ...object_methods, | |
| ], | |
| String: [ | |
| "at", | |
| "charAt", | |
| "charCodeAt", | |
| "charPointAt", | |
| "concat", | |
| "endsWith", | |
| "fromCharCode", | |
| "fromCodePoint", | |
| "includes", | |
| "indexOf", | |
| "italics", | |
| "lastIndexOf", | |
| "localeCompare", | |
| "match", | |
| "matchAll", | |
| "normalize", | |
| "padStart", | |
| "padEnd", | |
| "repeat", | |
| "replace", | |
| "replaceAll", | |
| "search", | |
| "slice", | |
| "split", | |
| "startsWith", | |
| "substr", | |
| "substring", | |
| "repeat", | |
| "toLocaleLowerCase", | |
| "toLocaleUpperCase", | |
| "toLowerCase", | |
| "toUpperCase", | |
| "trim", | |
| "trimEnd", | |
| "trimStart", | |
| ...object_methods, | |
| ], | |
| }); | |
| export const is_pure_native_fn = make_nested_lookup({ | |
| Array: [ | |
| "isArray", | |
| ], | |
| Math: [ | |
| "abs", | |
| "acos", | |
| "asin", | |
| "atan", | |
| "ceil", | |
| "cos", | |
| "exp", | |
| "floor", | |
| "log", | |
| "round", | |
| "sin", | |
| "sqrt", | |
| "tan", | |
| "atan2", | |
| "pow", | |
| "max", | |
| "min", | |
| ], | |
| Number: [ | |
| "isFinite", | |
| "isNaN", | |
| ], | |
| Object: [ | |
| "create", | |
| "getOwnPropertyDescriptor", | |
| "getOwnPropertyNames", | |
| "getPrototypeOf", | |
| "isExtensible", | |
| "isFrozen", | |
| "isSealed", | |
| "hasOwn", | |
| "keys", | |
| ], | |
| String: [ | |
| "fromCharCode", | |
| ], | |
| }); | |
| // Known numeric values which come with JS environments | |
| export const is_pure_native_value = make_nested_lookup({ | |
| Math: [ | |
| "E", | |
| "LN10", | |
| "LN2", | |
| "LOG2E", | |
| "LOG10E", | |
| "PI", | |
| "SQRT1_2", | |
| "SQRT2", | |
| ], | |
| Number: [ | |
| "MAX_VALUE", | |
| "MIN_VALUE", | |
| "NaN", | |
| "NEGATIVE_INFINITY", | |
| "POSITIVE_INFINITY", | |
| ], | |
| }); | |
Xet Storage Details
- Size:
- 5.27 kB
- Xet hash:
- 4f0cbf537edf88e93b3634badb139fabeeff46d0b2a33fe6ded1be5ad74e8f70
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.