- 1
- 2
- 3
- 4
- 5
- 6
- 7
var object = {a: 123, b:"abc"};
var newObject = ko.observableProps(object);
newObject.a(345);
newObject.b("def");
newObject.a(); => 345
newObject.b(); => "def"
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
var object = {a: 123, b:"abc"};
var newObject = ko.observableProps(object);
newObject.a(345);
newObject.b("def");
newObject.a(); => 345
newObject.b(); => "def"
Ко-ко-ко-ко-ко-обсервабле
0
var utils = require('util');
module.exports = class Client {
constructor(Socket) {
this.Socket = Socket;
this.TLSSocket = require('tls');
this.XmlParser = new require('xml2js').Parser();
this.XmlBuilder = require('xmlbuilder');
this.Client = this;
this.Authorized = false;
this.OnlineId = '1';
this.Socket.on('data', (Packet) => this.OnData(Packet));
this.Player = null;
this.Status = 0;
}
// Авторизация.
OnData(Packet) {
if (Packet[0] == 0xad || Packet[1] == 0xde || Packet[2] == 0xed || Packet[3] == 0xfe) {
var PacketBuffer = Buffer.alloc(Number(Packet.readBigInt64LE(4)));
Packet.copy(PacketBuffer, 0, 12);
var Query = PacketBuffer.toString();
console.log('[CLIENT] ',Query);
this.XmlParser.parseString(PacketBuffer.toString(), (err, result) => {
if (result)
{
if (result.starttls && !this.TLSSocket.Authorized && !this.Authorized) {
this.Send(this.XmlBuilder.create({
proceed: {
'@xmlns': 'urn:ietf:params:xml:ns:xmpp-tls'
}
}, {
headless: true
}).end({
pretty: false
}));
this.TLSSocket = new this.TLSSocket.TLSSocket(this.Socket, {
cert: global.Cert,
key: global.CertKey,
ca: global.CertBundle,
minVersion: 'TLSv1',
isServer: true
})
this.TLSSocket.once('secure', () => {
this.TLSSocket.Authorized = true;
console.log('TLS Connection established!');
});
this.TLSSocket.on('data', (Packet)=>this.OnData(Packet));
}
else if (result.iq && result.iq.bind) {
this.Send(this.XmlBuilder.create({
iq: {
'@id': result.iq.$.id,
'@type': 'result',
bind: {
'@xmlns': 'urn:ietf:params:xml:ns:xmpp-bind',
jid: this.OnlineId
}
}
}, {
headless: true
}).end({
pretty: false
}));
} else if (result.iq && result.iq.session) {
this.Send(this.XmlBuilder.create({
iq: {
'@id': result.iq.$.id,
'@type': 'result',
'@to': this.OnlineId,
session: {
'@xmlns': 'urn:ietf:params:xml:ns:xmpp-session'
}
}
}, {
headless: true
}).end({
pretty: false
}));
}
else if (result.iq && result.iq.query) {
var QueryName = Object.keys(result.iq.query[0]).filter(function (str) {
return str != '_' && str != '$'
})[0];
var QueryFunction = global.PacketFactory[QueryName];
if (QueryFunction) {
var Stanza = result.iq.query[0][QueryName][0];
console.log(`\x1b[32mQueryname: ${QueryName} ${utils.inspect(Stanza.$)}\x1b[0m`);
global.PacketFactory[QueryName].handle(this, Stanza, result.iq.$.to, result.iq.$.id);
}
Nodejs вход пользователя
+2
function main()
{
f1();
}
function f1(a = 10)
{
return a;
}
// code for 1
module @"1.ts" {
func @main() {
%c0_i32 = constant 0 : i32
%0 = typescript.undef : i32
%1 = call @f1(%c0_i32, %0) : (i32, i32) -> i32
return
}
func private @f1(%arg0: i32, %arg1: i32) -> i32 attributes {OptionalFrom = 1 : i8} {
%c10_i32 = constant 10 : i32
%c1_i32 = constant 1 : i32
%0 = alloca() : memref<i32>
%1 = cmpi ult, %arg0, %c1_i32 : i32
%2 = scf.if %1 -> (i32) {
scf.yield %c10_i32 : i32
} else {
scf.yield %arg1 : i32
}
store %2, %0[] : memref<i32>
%3 = load %0[] : memref<i32>
return %3 : i32
}
}
// code for 2
; ModuleID = 'LLVMDialectModule'
source_filename = "LLVMDialectModule"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
declare i8* @malloc(i64)
declare void @free(i8*)
define void @main() !dbg !3 {
%1 = call i32 @f1(i32 0, i32 undef), !dbg !7
ret void, !dbg !9
}
define i32 @f1(i32 %0, i32 %1) !dbg !10 {
%3 = alloca i32, i64 ptrtoint (i32* getelementptr (i32, i32* null, i64 1) to i64), align 4, !dbg !11
%4 = insertvalue { i32*, i32*, i64 } undef, i32* %3, 0, !dbg !11
%5 = insertvalue { i32*, i32*, i64 } %4, i32* %3, 1, !dbg !11
%6 = insertvalue { i32*, i32*, i64 } %5, i64 0, 2, !dbg !11
%7 = icmp ult i32 %0, 1, !dbg !11
br i1 %7, label %8, label %9, !dbg !11
8: ; preds = %2
br label %10, !dbg !11
9: ; preds = %2
br label %10, !dbg !11
10: ; preds = %8, %9
%11 = phi i32 [ %1, %9 ], [ 10, %8 ]
br label %12, !dbg !11
12: ; preds = %10
%13 = extractvalue { i32*, i32*, i64 } %6, 1, !dbg !11
store i32 %11, i32* %13, align 4, !dbg !11
%14 = extractvalue { i32*, i32*, i64 } %6, 1, !dbg !11
%15 = load i32, i32* %14, align 4, !dbg !11
ret i32 %15, !dbg !13
}
История о том как я компайлер писал. (предисторию знают думаю все). Посмотрите на код и сравните с ужасным кодом на С. Это простенький javascript который тоже може быть скомпиленным в исполняемый год. а что для этого надо. просто несколько шагов.
1) компилим код через чудо компилятор tsc.exe --emit=mlir-affine c:\1.ts
llc.exe --filetype=obj -o=out.o 1.ll
0
function check_cur_zak(id_zak, obj)
{
obj.getElementsByTagName('img')[0].style.display='none';
obj.getElementsByTagName('img')[1].style.display='block';
var ch_ids_tree_dse = arr2_ids_dse[id_zak].split('|');
var ch_names_tree_dse = arr2_names_dse[id_zak].split('|');
var ch_obozs_tree_dse = arr2_obozs_dse[id_zak].split('|');
var ch_child_tree_dse = arr2_child_dse[id_zak].split('|');
var cur_tree_dse = '';
if(document.getElementById('nav_tekysh_3').name>0)
{
console.log(arr_oprs_c_r_2)
var spl_op_res = arr_oprs_c_r_2[document.getElementById('nav_tekysh_3').name].split('|');
var spl_op_res_arr = [];
for (var spl_f_ar=0; spl_f_ar<spl_op_res.length; spl_f_ar++)
spl_op_res_arr[spl_op_res[spl_f_ar]] = spl_op_res[spl_f_ar];
}
for (var ch_t_f_d=0; ch_t_f_d < (ch_ids_tree_dse.length-1); ch_t_f_d++)
{
var cur_tree_oper_cur_dse = '';
var jv3_arr_full_tbl_1_spl = jv2_arr_full_tbl_1_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_2_spl = jv2_arr_full_tbl_2_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_3_spl = jv2_arr_full_tbl_3_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_4_spl = jv2_arr_full_tbl_4_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_5_spl = jv2_arr_full_tbl_5_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_5_1_spl = jv2_arr_full_tbl_5_1_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_6_spl = jv2_arr_full_tbl_6_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_7_spl = jv2_arr_full_tbl_7_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_8_spl = jv2_arr_full_tbl_8_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_9_spl = jv2_arr_full_tbl_9_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_10_spl = jv2_arr_full_tbl_10_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_11_spl = jv2_arr_full_tbl_11_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_12_spl = jv2_arr_full_tbl_12_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_14_spl = jv2_arr_full_tbl_14_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_15_spl = jv2_arr_full_tbl_15_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var jv3_arr_full_tbl_16_spl = jv2_arr_full_tbl_16_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
jv3_arr_full_tbl_17_spl = jv2_arr_full_tbl_17_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
jv3_arr_full_tbl_18_spl = jv2_arr_full_tbl_18_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
jv3_arr_full_tbl_19_spl = jv2_arr_full_tbl_19_spl[ch_ids_tree_dse[ch_t_f_d]].split('|');
var cur_dse_op_dse = '';
var cur_id_op_dse = '';
var cur_vp_op_dse = '';
for (var ch_t_f_o=0; ch_t_f_o < (jv3_arr_full_tbl_1_spl.length-1); ch_t_f_o++)
{
var clas_tr_col = 'fff';
var clas_tr_br = 'fff';
var clas_tr_pr = 'fff';
var clas_tr_park = 'fff';
var zadel_op = 0;
var stl_b_tr_pr = '';
var js_vp_op = '0<br>0.00';
var js_ksz_op = '0<br>0.00';
// if (jv3_arr_full_tbl_14_spl[ch_t_f_o]>0)
// {
// clas_tr_col='ddffdd';
// clas_tr_br='ddffdd';
// clas_tr_pr='ddffdd';
// clas_tr_park='ddffdd';
// }
if(document.getElementById('nav_tekysh_3').name>0)
{
if (spl_op_res_arr[jv3_arr_full_tbl_16_spl[ch_t_f_o]])
{
clas_tr_pr='99ff99';
stl_b_tr_pr = 'font-size:150%; color:#13BD13;padding-left:5px';
}
var parks_for_cur_res = document.getElementById('park_sel_cur_res').options.length;
for (var p_f_c_r=0; p_f_c_r<parks_for_cur_res; p_f_c_r++)
{
if ((document.getElementById('park_sel_cur_res').options[p_f_c_r].value !== '0')&&(document.getElementById('park_sel_cur_res').options[p_f_c_r].value !== ''))
{
if (jv3_arr_full_tbl_5_1_spl[ch_t_f_o]==document.getElementById('park_sel_cur_res').options[p_f_c_r].value)
clas_tr_park='99ddff';
}
}
}
if (jv3_arr_full_tbl_12_spl[ch_t_f_o]==1)
clas_tr_br='ff9999';
if (jv3_arr_full_tbl_15_spl[ch_t_f_o]==0)
{
if(jv3_arr_full_tbl_3_spl[ch_t_f_o]=='')
jv3_arr_full_tbl_3_spl[ch_t_f_o]='0';
if(jv3_arr_full_tbl_6_spl[ch_t_f_o]=='')
jv3_arr_full_tbl_6_spl[ch_t_f_o]='0.00';
if(jv3_arr_full_tbl_7_spl[ch_t_f_o]=='')
jv3_arr_full_tbl_7_spl[ch_t_f_o]='0';
if(jv3_arr_full_tbl_8_spl[ch_t_f_o]=='')
−1
let d="please like! "
var c=d
let x=s=>{for(let f=0;f<c.length;f++){eval(s)}}
x("d=d+d")
x("console.log(d)")
На каком языке это получится сделать короче?
0
function main() {
var distance = parseInt(readLine(), 10);
p((distance/40)*60)
}
let p=p=>console.log(p)
Как-то так вот!
0
<!DOCTYPE html>
<html>
<head>
<title>loop ass</title>
</head>
<body>
<script>
function s(){
var a="A and B sat on the pipe!";
alert(a)
alert("A fell!")
alert("B gone!")
alert("who stayed on the pipe?")
prompt(" who stayed on the pipe?")==a[2]+a[3]+a[4]?alert(@):s()
}
s()
</script>
</body>
</html>
Что не так?
0
var адрес = localStorage.getItem("пуск");
if (!адрес)
{
адрес = "https://bitbucket.org/gitjs/0000/raw/master/0000.js";
}
var gitjs = {};
gitjs.uuid = function()
{
// https://stackoverflow.com/a/2117523
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
/[xy]/g,
function(c)
{
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}
);
};
function запуститьGitJSЛокально(пуск)
{
eval(пуск);
запуститьGitJS();
}
function запуститьGitJSПоСети(адрес)
{
function загрузилиПуск(пуск)
{
localStorage.setItem("0000", пуск);
eval(пуск);
запуститьGitJS();
}
function неУдалосьЗагрузитьПуск(ошибка)
{
var сообщение = `ОШИБКА ⚬ 错误 ⚬ ERROR: '${ошибка}'`
console.error(сообщение);
document.body.append(сообщение);
}
var запрос = new XMLHttpRequest();
запрос.onreadystatechange = function()
{
if (this.readyState == 4)
{
if (this.status == 200)
{
загрузилиПуск(this.responseText);
}
else
{
неУдалосьЗагрузитьПуск(this.status);
}
}
}
запрос.open("GET", адрес + "?" + gitjs.uuid());
запрос.send();
console.debug("Загрузка пускового скрипта по сети Loading startup script over network");
console.debug(адрес);
}
function версияАктуальна(содержимое)
{
var ожидаемаяВерсия = "1.2.1";
var перваяСтрока = содержимое.split(/\n/)[0];
var ч = перваяСтрока.split(/"/);
return ч.length == 5 && ч[0] == "gitjs[" && ч[1] == "ijlj" && ч[3] == ожидаемаяВерсия;
}
var пуск = localStorage.getItem("0000");
if (пуск && версияАктуальна(пуск))
{
запуститьGitJSЛокально(пуск);
}
else
{
запуститьGitJSПоСети(адрес);
}
афтар: https://gitlab.com/gitjs/gitjs.gitlab.io/-/blob/master/index.html
0
if (condition)
{
return result;
}
for (let i = 0; i < 5; i++)
{
console.log(i)
}
Зачастую у многих программистов, который пишут на джаваскрипте, наблюдаю следующую картину - вероятно, унаследованную из какого-нибудь си шарпа.
Можно ли назвать это говнокодом, в рамках JS?
+1
let array = [-2, 4, -10, 8];
let count = 0;
for (let i = 0; i < array.length; i++) {
if (!String(array[i]).startsWith("-")) {
count += array[i]
}
}
console.log(count) // 12
Пробовался в speed'кодинге, получил задачу: "написать код для нахождения суммы всех положительных элементов массива", ну и наскоро получилось такое xD